OSCR

Non-coding structural variants disrupt FOXG1 transcriptional regulation in early neurodevelopment.

Code ↔ Paper

1 match between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 1 match
  1. [1] § Results › FOXG1 is dynamically regulated during the early phases of NPC differentiation ↔ notebooks/Figure2_Spatial_A-P_gene_patterning.ipynb, lines 2334–2372 · score 0.51 · LMX1A, OTX2, SIX3, EN1, PAX6, FOXG1

Paper

Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

Jupyter notebook · 2,410 lines · 88 KB · BSD-2-Clause · 1 match

  1. # %%
  2. #Import FISHscale
  3. import sys
  4. #If you did not pip install FISHscale
  5. sys.path.insert(0, "/home/lars/storage/Documents/FISHscale/")
  6. from FISHscale.utils import dataset
  7. from FISHscale.utils.inside_polygon import inside_simple_polygons
  8. #Otherwise you can just do: `import FISHscale'
  9. import matplotlib.pyplot as plt
  10. import numpy as np
  11. import pandas as pd
  12. import pickle as pkl
  13. import math
  14. import shapely
  15. from shapely.geometry import Polygon, LineString, MultiLineString
  16. from shapely.geometry import LineString, MultiPolygon, Polygon, Point
  17. from shapely.ops import polygonize
  18. from numpy.lib.stride_tricks import sliding_window_view
  19. import napari
  20. from matplotlib.patches import Polygon as mplPolygon
  21. from matplotlib.collections import PatchCollection
  22. from matplotlib.lines import Line2D
  23. from scipy.ndimage import median_filter
  24. import json
  25. from FISHscale.utils.inside_polygon import close_polygon, inside_simple_polygons, is_inside_sm_parallel, inside_multi_polygons
  26. %load_ext autoreload
  27. %autoreload 2
  28. # %% [markdown]
  29. # # Basic functions
  30. # %%
  31. def get_line(x, y):
  32. slope = (y[0] - y[1]) / (x[0] - x[1])
  33. b = (x[0]*y[1] - x[1]*y[0]) / (x[0]-x[1])
  34. return slope, b
  35. def middle(x, y):
  36. mx = x[0] + (0.5 * (x[1] - x[0]))
  37. my = y[0] + (0.5 * (y[1] - y[0]))
  38. return mx, my
  39. def perpendicular_a(x, y):
  40. return (x[1] - x[0]) / (y[0] - y[1])
  41. def perpendicular_b(a, x, y):
  42. return y - (a * x)
  43. def line(a, b, x):
  44. return a * x + b
  45. def get_angle(x, y):
  46. dx = x[1] - x[0]
  47. dy = y[1] - y[0]
  48. a = math.atan2(dy, dx)
  49. return a
  50. def make_perpendicular(x, y, l=1, direction='right'):
  51. a,b = get_line(x,y)
  52. mx, my = middle(x, y)
  53. pa = perpendicular_a(x,y)
  54. pb = perpendicular_b(pa, mx, my)
  55. a = get_angle(x, y)
  56. if direction == 'right':
  57. sign=1
  58. elif direction == 'left':
  59. sign=-1
  60. else:
  61. raise Exception(f'Direction: {direction} not understood. Choose from "right" or "left".')
  62. dy = y[1] - y[0]
  63. dx = x[1] - x[0]
  64. #Up and right
  65. if dy >= 0 and dx >= 0:
  66. qx = np.sin(a) * l * sign
  67. qx = mx + qx
  68. #Up and left
  69. elif dy >= 0 and dx <= 0:
  70. qx = np.sin(np.pi - a) * l * sign
  71. qx = mx + qx
  72. #Down and right
  73. elif dy <= 0 and dx >= 0:
  74. qx = np.sin(a) * l * sign
  75. qx = mx + qx
  76. #Down and left
  77. elif dy <= 0 and dx <= 0:
  78. qx = np.sin(np.pi - a) * l * sign
  79. qx = mx + qx
  80. else:
  81. print('found straight line')
  82. y1 = line(pa, pb, qx)
  83. if abs(y1) > 10000:
  84. y1 = 0
  85. return [mx, qx], [my, y1]
  86. # %% [markdown]
  87. # # EEL data
  88. # %%
  89. #Change to your folder
  90. folder = '/home/lars/Share/Dropbox (Linnarsson Group)/Linnarsson Group/Projects/EEL/Data/Human_embryo_5week/'
  91. #RNA data of the most medial section
  92. fname_970 = folder + 'LBEXP20211113_EEL_HE_5w_970um_RNA_transformed_assigned.parquet'
  93. #Brain polygons
  94. #pol_970 = np.load(folder + 'Brain_polygon_970.npy')
  95. # %% [markdown]
  96. # ## Run the below colapsed cell to load `pol_970`:
  97. # %%
  98. pol_970 = np.array([[4529.18440782, 3320.15563159],
  99. [4442.64405105, 3431.25473825],
  100. [4360.7815514 , 3520.13402359],
  101. [4318.6808373 , 3589.13241615],
  102. [4304.64726593, 3609.01330892],
  103. [4333.88387295, 3678.01170148],
  104. [4328.03655154, 3722.45134414],
  105. [4330.3754801 , 3782.09402246],
  106. [4330.3754801 , 3834.71991509],
  107. [4319.85030158, 3875.65116491],
  108. [4305.81673021, 3922.42973614],
  109. [4287.10530172, 3962.19152168],
  110. [4263.7160161 , 4030.02044996],
  111. [4234.47940909, 4090.83259256],
  112. [4250.85190902, 4161.0004494 ],
  113. [4288.274766 , 4254.55759185],
  114. [4304.64726593, 4311.86134161],
  115. [4317.51137302, 4343.43687719],
  116. [4322.18923014, 4386.70705557],
  117. [4361.95101568, 4433.4856268 ],
  118. [4404.05172979, 4507.16187648],
  119. [4449.66083673, 4586.68544757],
  120. [4498.77833652, 4652.17544728],
  121. [4552.57369343, 4709.47919704],
  122. [4595.84387182, 4764.44401823],
  123. [4633.2667288 , 4792.51116097],
  124. [4691.73994283, 4808.8836609 ],
  125. [4691.73994283, 4808.8836609 ],
  126. [4740.85744262, 4792.51116097],
  127. [4796.99172809, 4792.51116097],
  128. [4842.60083504, 4804.20580377],
  129. [4861.31226353, 4826.42562511],
  130. [4857.80387069, 4856.8316964 ],
  131. [4885.87101343, 4900.10187479],
  132. [4904.58244192, 4944.54151745],
  133. [4908.09083476, 4988.98116012],
  134. [4927.97172753, 5015.87883858],
  135. [4944.34422746, 5061.48794552],
  136. [4956.03887027, 5128.14740952],
  137. [4959.54726311, 5172.58705219],
  138. [4952.53047742, 5260.29687324],
  139. [4922.12440613, 5282.51669457],
  140. [4895.22672767, 5319.93955155],
  141. [4868.32904922, 5349.17615857],
  142. [4833.2451208 , 5371.3959799 ],
  143. [4792.31387097, 5397.12419408],
  144. [4743.19637118, 5405.31044404],
  145. [4680.04530003, 5409.98830117],
  146. [4621.57208599, 5412.32722973],
  147. [4589.99655041, 5420.51347969],
  148. [4559.59047912, 5418.17455113],
  149. [4520.99815785, 5391.27687267],
  150. [4485.91422943, 5370.22651562],
  151. [4485.91422943, 5370.22651562],
  152. [4464.86387238, 5370.22651562],
  153. [4443.81351533, 5342.15937289],
  154. [4447.32190817, 5314.09223015],
  155. [4464.86387238, 5276.66937317],
  156. [4449.66083673, 5226.3824091 ],
  157. [4429.77994396, 5167.90919506],
  158. [4412.23797975, 5130.48633808],
  159. [4359.61208712, 5063.82687408],
  160. [4306.98619449, 5003.01473149],
  161. [4246.17405189, 4930.50794609],
  162. [4176.00619505, 4890.74616054],
  163. [4137.41387379, 4867.35687493],
  164. [4111.68565962, 4834.61187507],
  165. [4107.00780249, 4824.08669654],
  166. [4077.77119548, 4804.20580377],
  167. [4028.65369569, 4755.08830398],
  168. [3957.31637457, 4682.58151858],
  169. [3916.38512474, 4619.43044743],
  170. [3904.69048194, 4601.88848322],
  171. [3904.69048194, 4566.8045548 ],
  172. [3888.31798201, 4550.43205487],
  173. [3849.72566074, 4530.55116209],
  174. [3841.60013547, 4524.09111299],
  175. [3816.97556299, 4498.69702262],
  176. [3818.51459877, 4468.68582492],
  177. [3832.36592079, 4428.67089464],
  178. [3842.36965336, 4390.96451804],
  179. [3840.06109969, 4323.24694373],
  180. [3810.81941987, 4273.22828088],
  181. [3797.73761574, 4209.35829602],
  182. [3759.26172125, 4173.96047308],
  183. [3714.62968363, 4158.57011529],
  184. [3695.39173639, 4162.41770474],
  185. [3658.45487767, 4143.94927538],
  186. [3623.82657262, 4117.78566712],
  187. [3603.81910749, 4080.07929052],
  188. [3586.88971391, 4026.98255611],
  189. [3559.95658776, 3971.57726804],
  190. [3520.71117538, 3919.25005153],
  191. [3520.71117538, 3919.25005153],
  192. [3499.93419235, 3892.31692538],
  193. [3462.22781574, 3810.74802905],
  194. [3416.82626024, 3753.8037052 ],
  195. [3323.71459556, 3670.69577309],
  196. [3280.62159373, 3642.99312905],
  197. [3219.06016254, 3599.90012722],
  198. [3136.72174832, 3542.18628547],
  199. [3113.63621162, 3509.8665341 ],
  200. [3095.16778226, 3474.46871116],
  201. [3053.61381621, 3456.00028181],
  202. [3022.83310061, 3444.45751346],
  203. [2938.95565061, 3417.52438731],
  204. [2878.9332552 , 3399.82547584],
  205. [2829.68411025, 3379.81801071],
  206. [2829.68411025, 3379.81801071],
  207. [2780.43496529, 3353.65440245],
  208. [2736.57244557, 3319.0260974 ],
  209. [2671.93294282, 3281.3197208 ],
  210. [2641.15222722, 3261.31225566],
  211. [2582.66886759, 3248.23045153],
  212. [2514.95129328, 3228.22298639],
  213. [2404.91023502, 3198.21178869],
  214. [2353.3525364 , 3153.57975107],
  215. [2296.40821254, 3125.10758915],
  216. [2276.40074741, 3105.8696419 ],
  217. [2251.77617493, 3097.40494511],
  218. [2182.51956484, 3057.39001484],
  219. [2121.72765153, 3011.98845933],
  220. [2054.01007722, 2955.81365337],
  221. [1936.27384007, 2896.56077585],
  222. [1822.38519236, 2835.76886254],
  223. [1722.34786668, 2777.28550291],
  224. [1629.236202 , 2742.65719787],
  225. [1589.99078961, 2737.27057264],
  226. [1539.20260888, 2720.34117906],
  227. [1506.11333961, 2699.56419603],
  228. [1506.11333961, 2699.56419603],
  229. [1475.33262402, 2691.09949924],
  230. [1412.23215704, 2661.08830154],
  231. [1371.44770888, 2634.15517539],
  232. [1304.49965246, 2573.36326209],
  233. [1253.71147172, 2543.35206438],
  234. [1204.46232677, 2500.25906255],
  235. [1170.60353962, 2467.16979328],
  236. [1139.82282402, 2461.78316805],
  237. [1043.63308778, 2444.08425658],
  238. [ 995.15346072, 2444.85377447],
  239. [ 938.97865475, 2444.85377447],
  240. [ 938.97865475, 2444.85377447],
  241. [ 911.27598723, 2467.93931117],
  242. [ 857.40973494, 2515.64942035],
  243. [ 778.91891017, 2594.90976301],
  244. [ 746.5991588 , 2648.7760153 ],
  245. [ 707.35374641, 2710.33744649],
  246. [ 674.26447714, 2791.13682493],
  247. [ 665.79978036, 2864.24102447],
  248. [ 665.03026247, 2924.26341988],
  249. [ 687.34628127, 3007.37135199],
  250. [ 719.66603265, 3059.69856851],
  251. [ 754.29433769, 3125.87710704],
  252. [ 775.84083861, 3156.65782263],
  253. [ 835.09371613, 3234.37912951],
  254. [ 865.10491384, 3292.86248915],
  255. [ 909.73697494, 3332.10790153],
  256. [ 969.75937035, 3411.36824419],
  257. [1029.78176576, 3504.47990887],
  258. [1082.87850017, 3582.97073364],
  259. [1149.82655659, 3688.39468456],
  260. [1213.69654145, 3772.27213456],
  261. [1257.55906117, 3848.45440566],
  262. [1314.50338503, 3935.40992722],
  263. [1368.36963732, 4011.59219832],
  264. [1392.22469191, 4052.37664648],
  265. [1431.47010429, 4143.94927538],
  266. [1485.33635659, 4208.58877813],
  267. [1514.5780364 , 4258.60744097],
  268. [1527.65984053, 4313.24321116],
  269. [1527.65984053, 4313.24321116],
  270. [1550.74537723, 4357.87524877],
  271. [1579.98705704, 4437.90510932],
  272. [1609.99825475, 4482.53714694],
  273. [1669.25113227, 4545.63761391],
  274. [1723.11738457, 4612.58567033],
  275. [1770.82749374, 4676.45565519],
  276. [1802.37772723, 4732.63046115],
  277. [1819.3071208 , 4767.2587662 ],
  278. [1858.55253319, 4829.58971528],
  279. [1897.02842768, 4881.9169318 ],
  280. [1917.03589282, 4918.85379051],
  281. [1933.9652864 , 4971.95052491],
  282. [1945.50805475, 5013.50449097],
  283. [1982.44491346, 5078.14399372],
  284. [2017.8427364 , 5111.23326299],
  285. [2050.16248777, 5155.8653006 ],
  286. [2051.70152355, 5162.02144372],
  287. [2081.71272126, 5203.57540977],
  288. [2118.64957998, 5248.20744739],
  289. [2174.05486805, 5308.99936069],
  290. [2241.00292447, 5382.10356023],
  291. [2284.0959263 , 5430.5831873 ],
  292. [2341.04025016, 5495.22269005],
  293. [2372.59048364, 5534.46810243],
  294. [2411.06637814, 5556.01460335],
  295. [2448.77275474, 5592.95146206],
  296. [2475.70588089, 5629.88832078],
  297. [2522.64647217, 5683.75457307],
  298. [2565.73947401, 5702.99252032],
  299. [2605.75440428, 5716.84384234],
  300. [2651.15595979, 5741.46841482],
  301. [2651.15595979, 5741.46841482],
  302. [2687.32330061, 5761.47587995],
  303. [2758.11894648, 5799.18225656],
  304. [2844.30495015, 5853.04850885],
  305. [2897.40168456, 5883.05970656],
  306. [2966.65829465, 5915.37945793],
  307. [3064.38706667, 5941.54306619],
  308. [3139.03030199, 5959.24197766],
  309. [3209.82594786, 5958.47245977],
  310. [3265.23123593, 5966.16763867],
  311. [3265.23123593, 5966.16763867],
  312. [3321.40604189, 5969.24571023],
  313. [3389.1236162 , 5969.24571023],
  314. [3454.53263685, 5964.62860289],
  315. [3512.24647859, 5960.01149555],
  316. [3585.35067813, 5960.01149555],
  317. [3657.68535978, 5962.32004922],
  318. [3722.32486253, 5964.62860289],
  319. [3766.95690015, 5996.94835426],
  320. [3769.26545382, 5996.94835426],
  321. [3794.87989878, 6039.04901933],
  322. [3833.47222004, 6090.50544768],
  323. [3907.14846973, 6138.45348318],
  324. [3977.31632657, 6144.30080459],
  325. [4058.00936193, 6177.04580445],
  326. [4131.68561162, 6194.58776866],
  327. [4232.25953976, 6198.0961615 ],
  328. [4325.81668221, 6208.62134002],
  329. [4432.23793175, 6213.29919715],
  330. [4583.09882396, 6203.9434829 ],
  331. [4632.21632375, 6206.28241146],
  332. [4773.72150171, 6193.41830438],
  333. [4773.72150171, 6193.41830438],
  334. [4903.53203687, 6164.18169736],
  335. [5053.22346479, 6110.38634045],
  336. [5169.00042858, 6033.20169792],
  337. [5316.35292795, 5919.7636627 ],
  338. [5450.84132022, 5811.00348459],
  339. [5531.53435559, 5708.09062789],
  340. [5604.04114099, 5636.75330677],
  341. [5678.88685496, 5518.63741442],
  342. [5723.32649762, 5430.92759337],
  343. [5723.32649762, 5430.92759337],
  344. [5773.61374721, 5345.5569864 ],
  345. [5828.5785684 , 5200.54341559],
  346. [5875.35713962, 5103.4778803 ],
  347. [5947.86392503, 5052.02145195],
  348. [5991.13410341, 5020.44591637],
  349. [6022.70963899, 4973.66734514],
  350. [6019.20124615, 4931.56663104],
  351. [6011.01499618, 4871.92395272],
  352. [5985.28678201, 4751.46913181],
  353. [5963.06696068, 4635.69216802],
  354. [5950.20285359, 4523.42359708],
  355. [5929.15249654, 4448.57788312],
  356. [5903.42428236, 4393.61306192],
  357. [5881.20446103, 4358.5291335 ],
  358. [5889.87640263, 4351.54250731],
  359. [5936.04747603, 4341.53877474],
  360. [6029.92865859, 4255.35277107],
  361. [6073.79117832, 4165.31917795],
  362. [6106.11092969, 4009.87656419],
  363. [6129.19646639, 3755.93566052],
  364. [6115.34514437, 3642.81653071],
  365. [6113.0365907 , 3632.81279814],
  366. [6106.11092969, 3591.25883208],
  367. [6063.78744575, 3494.29957796],
  368. [6006.07360401, 3401.18791328],
  369. [5907.5753141 , 3320.38853484],
  370. [5816.77220309, 3249.59288897],
  371. [5815.23316731, 3248.05385319],
  372. [5737.95232152, 3194.5863008 ],
  373. [5652.89277215, 3129.71037332],
  374. [5528.90766629, 3077.80963133],
  375. [5390.50568766, 3048.97588578],
  376. [5272.28733091, 3064.83444583],
  377. [5141.09378866, 3093.66819138],
  378. [5038.73399196, 3134.03543515],
  379. [4929.16575888, 3196.02798808],
  380. [4845.54789678, 3227.74510818],
  381. [4845.54789678, 3227.74510818],
  382. [4784.99703113, 3246.48704279],
  383. [4708.58760543, 3266.67066467],
  384. [4642.26999067, 3285.41259928],
  385. [4575.9523759 , 3305.59622116],
  386. [4557.2104413 , 3307.03790844],
  387. [4529.18440782, 3320.15563159],
  388. [ 768.1972094 , 3078.6097701 ],
  389. [ 786.29946221, 3122.30486311],
  390. [ 821.25553662, 3178.48426841],
  391. [ 857.46004226, 3235.28788933],
  392. [ 893.04033228, 3270.24396373],
  393. [ 918.00895686, 3302.07896007],
  394. [ 945.47444389, 3343.90140624],
  395. [ 980.4305183 , 3370.74267766],
  396. [1024.12561131, 3428.17051419],
  397. [1049.71845151, 3464.37501982],
  398. [1072.19021363, 3512.43962214],
  399. [1101.5283475 , 3553.01363707],
  400. [1126.49697208, 3587.34549587],
  401. [1160.20461526, 3643.52490117],
  402. [1182.67637738, 3679.10519119],
  403. [1190.79118037, 3686.59577856],
  404. [1253.83695743, 3785.84606126],
  405. [1334.36077169, 3906.94389046],
  406. [1381.80115838, 3993.08564525],
  407. [1411.76350788, 4029.9143665 ],
  408. [1440.47742614, 4094.8327904 ],
  409. [1481.67565669, 4169.11444852],
  410. [1522.24967163, 4236.52973488],
  411. [1557.20574604, 4313.30825545],
  412. [1582.79858623, 4370.11187637],
  413. [1603.39770151, 4426.29128167],
  414. [1630.86318854, 4470.61059029],
  415. [1658.32867558, 4491.20970557],
  416. [1688.91524069, 4528.03842682],
  417. [1688.91524069, 4528.03842682],
  418. [1714.50815708, 4556.75234508],
  419. [1758.8274657 , 4616.05282846],
  420. [1795.65618695, 4686.58919289],
  421. [1842.47235804, 4752.1318324 ],
  422. [1859.32617963, 4795.82692541],
  423. [1899.90019456, 4838.89780281],
  424. [1920.49930984, 4883.21711143],
  425. [1962.94597162, 4949.38396656],
  426. [1994.15675234, 4987.46111904],
  427. [2002.89577095, 5015.55082169],
  428. [2014.75586762, 5056.12483663],
  429. [2044.0940015 , 5082.96610805],
  430. [2060.32360747, 5114.17688877],
  431. [2081.54693836, 5158.4961974 ],
  432. [2101.52183803, 5179.71952829],
  433. [2110.26085663, 5185.33746882],
  434. [2149.58644034, 5202.19129041],
  435. [2190.16045528, 5225.91148376],
  436. [2195.15418019, 5271.47922361],
  437. [2208.26270809, 5318.91961031],
  438. [2254.45466356, 5359.49362525],
  439. [2290.03495358, 5409.4308744 ],
  440. [2341.84484958, 5454.99861426],
  441. [2379.92200206, 5506.80851025],
  442. [2436.10140736, 5547.38252519],
  443. [2476.05120669, 5592.32604943],
  444. [2518.49786847, 5634.77271121],
  445. [2565.31403955, 5666.60770755],
  446. [2617.12393555, 5679.09201984],
  447. [2620.24501362, 5680.34045107],
  448. [2638.34726644, 5697.81879306],
  449. [2697.0235342 , 5735.89594554],
  450. [2801.89175742, 5787.70584154],
  451. [2899.89360889, 5836.39465947],
  452. [2967.30889525, 5881.33818371],
  453. [3061.56545303, 5907.55523951],
  454. [3147.70720782, 5920.66376742],
  455. [3195.77181013, 5911.3005332 ],
  456. [3251.95121543, 5893.19828038],
  457. [3251.95121543, 5893.19828038],
  458. [3266.93239017, 5881.96239932],
  459. [3286.90728984, 5849.50318737],
  460. [3314.37277687, 5838.26730631],
  461. [3350.57728251, 5820.16505349],
  462. [3380.539632 , 5808.92917243],
  463. [3427.35580308, 5799.56593822],
  464. [3447.33070275, 5773.97309802],
  465. [3447.33070275, 5740.26545484],
  466. [3480.41413031, 5720.9147708 ],
  467. [3575.91911932, 5692.82506815],
  468. [3655.19450235, 5664.7353655 ],
  469. [3685.15685185, 5675.34703094],
  470. [3750.07527575, 5684.71026516],
  471. [3784.40713454, 5694.07349938],
  472. [3827.47801194, 5705.93359605],
  473. [3828.10222755, 5707.80624289],
  474. [3847.4529116 , 5698.44300868],
  475. [3882.40898601, 5703.43673359],
  476. [3881.16055478, 5726.53271133],
  477. [3890.52378899, 5762.73721696],
  478. [3897.39016075, 5783.33633224],
  479. [3918.61349164, 5829.52828771],
  480. [3929.8493727 , 5860.73906843],
  481. [3938.58839131, 5881.96239932],
  482. [3959.18750658, 5913.17318004],
  483. [3979.78662186, 5968.10415411],
  484. [3978.53819063, 6061.11228066],
  485. [4015.9911275 , 6074.22080857],
  486. [4073.41896402, 6094.81992384],
  487. [4129.59836932, 6127.27913579],
  488. [4182.03248094, 6131.02442948],
  489. [4228.84865202, 6146.62981984],
  490. [4270.67109819, 6147.25403546],
  491. [4305.00295698, 6144.757173 ],
  492. [4305.62717259, 6144.757173 ],
  493. [4317.48726927, 6139.76344808],
  494. [4343.70432507, 6129.15178264],
  495. [4371.16981211, 6137.89080124],
  496. [4426.72500179, 6149.1266823 ],
  497. [4484.77705394, 6149.1266823 ],
  498. [4535.33851871, 6152.24776037],
  499. [4597.76008015, 6152.24776037],
  500. [4651.44262299, 6160.98677897],
  501. [4727.59692795, 6165.98050389],
  502. [4763.17721797, 6159.73834774],
  503. [4834.96201363, 6149.1266823 ],
  504. [4893.63828139, 6132.27286071],
  505. [4893.01406578, 6131.6486451 ],
  506. [4922.97672006, 6129.77599825],
  507. [4981.0287722 , 6106.0558049 ],
  508. [5058.43150839, 6062.36071189],
  509. [5108.99297316, 6029.27728433],
  510. [5164.54816285, 5999.31493484],
  511. [5213.23698077, 5955.61984182],
  512. [5250.06570203, 5918.79112057],
  513. [5268.16795484, 5890.07720231],
  514. [5314.35991031, 5861.36328405],
  515. [5314.35991031, 5861.36328405],
  516. [5351.18832677, 5840.76416877],
  517. [5389.26547925, 5817.04397542],
  518. [5426.71841612, 5770.22780434],
  519. [5459.17762807, 5713.42418342],
  520. [5502.24850546, 5673.4743841 ],
  521. [5556.55526392, 5633.52458478],
  522. [5584.64496657, 5576.09674825],
  523. [5637.07907818, 5508.05724628],
  524. [5672.65936821, 5429.40607886],
  525. [5718.22710806, 5369.48137987],
  526. [5745.06837948, 5293.32707491],
  527. [5766.29171037, 5230.28129785],
  528. [5780.02445389, 5204.06424205],
  529. [5780.02445389, 5204.06424205],
  530. [5786.89082565, 5181.59217513],
  531. [5799.37513794, 5137.27286651],
  532. [5816.22895953, 5109.80737947],
  533. [5846.81552463, 5069.85758015],
  534. [5876.77787413, 5034.90150574],
  535. [5901.7464987 , 5019.29611538],
  536. [5921.72139836, 5001.81807818],
  537. [5904.24336116, 4951.25661341],
  538. [5883.64424588, 4910.68259847],
  539. [5886.76532396, 4859.49691809],
  540. [5873.65679605, 4806.43859086],
  541. [5869.91150237, 4760.24663539],
  542. [5848.06395586, 4697.82507395],
  543. [5839.32493726, 4622.2949846 ],
  544. [5829.96170304, 4580.47253843],
  545. [5823.7195469 , 4530.53528928],
  546. [5802.49621601, 4461.87157169],
  547. [5775.03072897, 4426.29128167],
  548. [5741.32308579, 4375.10560128],
  549. [5730.08720473, 4359.50021092],
  550. [5732.58406719, 4345.14325179],
  551. [5741.32308579, 4309.56296177],
  552. [5743.81994825, 4282.09747473],
  553. [5772.53386651, 4259.62571261],
  554. [5808.73837215, 4235.28130365],
  555. [5843.69444656, 4232.16022558],
  556. [5870.53571798, 4229.03914751],
  557. [5904.86757678, 4212.80954153],
  558. [5934.82992627, 4201.57366047],
  559. [5956.05325716, 4170.98709536],
  560. [5964.79227576, 4132.90994288],
  561. [5986.63982227, 4101.69916216],
  562. [5980.39766612, 4079.85161566],
  563. [5984.76717542, 4047.39240371],
  564. [5969.16178506, 4019.30270106],
  565. [5962.2954133 , 3996.83093894],
  566. [5959.79855085, 3976.85603927],
  567. [5946.69002294, 3967.49280506],
  568. [5942.94472926, 3953.76006154],
  569. [5952.30796347, 3938.77888679],
  570. [5965.41649138, 3935.03359311],
  571. [5994.13040964, 3919.42820275],
  572. [6014.1053093 , 3913.81026222],
  573. [6026.58962159, 3893.83536255],
  574. [6021.59589667, 3878.22997219],
  575. [6017.85060299, 3864.49722868],
  576. [6012.85687807, 3850.14026954],
  577. [6018.4748186 , 3827.66850742],
  578. [6017.85060299, 3790.21557056],
  579. [6011.60844684, 3759.00478984],
  580. [6002.24521263, 3715.93391244],
  581. [5999.12413455, 3677.85675996],
  582. [5998.49991894, 3677.85675996],
  583. [5996.00305648, 3660.37872276],
  584. [5987.88825349, 3629.16794203],
  585. [5977.90080366, 3601.07823939],
  586. [5956.05325716, 3580.47912411],
  587. [5952.30796347, 3548.64412777],
  588. [5926.71512328, 3513.06383775],
  589. [5898.62542063, 3488.09521317],
  590. [5863.04513061, 3465.62345105],
  591. [5851.80924955, 3453.76335438],
  592. [5837.45229042, 3436.28531717],
  593. [5818.72582198, 3423.17678927],
  594. [5796.87827548, 3406.9471833 ],
  595. [5766.91592599, 3388.84493048],
  596. [5745.06837948, 3390.09336171],
  597. [5719.47553929, 3358.88258098],
  598. [5682.64681804, 3336.41081886],
  599. [5652.06025293, 3312.0664099 ],
  600. [5614.60731606, 3291.46729463],
  601. [5569.03957621, 3299.58209761],
  602. [5542.19830479, 3292.09151024],
  603. [5522.22340513, 3290.2188634 ],
  604. [5512.2359553 , 3272.74082619],
  605. [5496.00634932, 3237.78475178],
  606. [5489.76419318, 3229.6699488 ],
  607. [5470.41350913, 3227.17308634],
  608. [5470.41350913, 3227.17308634],
  609. [5457.92950163, 3239.65739863],
  610. [5426.0945053 , 3239.03318301],
  611. [5395.50794019, 3228.42151757],
  612. [5368.04245315, 3234.0394581 ],
  613. [5333.71059436, 3236.53632056],
  614. [5298.13030434, 3244.02690793],
  615. [5267.54373923, 3249.64484846],
  616. [5235.08452728, 3256.51122022],
  617. [5205.12217779, 3261.50494513],
  618. [5163.29973162, 3267.74710128],
  619. [5120.85306984, 3272.74082619],
  620. [5096.50866088, 3295.21258831],
  621. [5067.79474261, 3318.93278166],
  622. [5023.47543399, 3337.03503448],
  623. [4994.13730011, 3348.27091554],
  624. [4971.04132237, 3357.63414976],
  625. [4971.04132237, 3357.63414976],
  626. [4955.43562722, 3368.87003082],
  627. [4932.9638651 , 3376.9848338 ],
  628. [4893.01406578, 3385.09963679],
  629. [4859.3064226 , 3398.83238031],
  630. [4824.9745638 , 3412.56512383],
  631. [4802.50280168, 3420.0557112 ],
  632. [4776.28574588, 3425.67365173],
  633. [4739.45702463, 3417.55884874],
  634. [4719.48212496, 3399.45659592],
  635. [4687.64712863, 3388.22071486],
  636. [4663.92693528, 3379.48169626],
  637. [4651.44262299, 3364.50052151],
  638. [4617.73497981, 3357.00993414],
  639. [4594.63900208, 3359.5067966 ],
  640. [4575.28831803, 3386.34806802],
  641. [4549.69547784, 3418.80727997],
  642. [4549.69547784, 3451.89070754],
  643. [4567.17351504, 3476.2351165 ],
  644. [4570.29459311, 3499.33109423],
  645. [4562.80400574, 3532.4145218 ],
  646. [4563.42822136, 3571.11588989],
  647. [4537.21116555, 3614.18676729],
  648. [4524.72685326, 3639.77960748],
  649. [4527.22371572, 3680.97783803],
  650. [4510.36989413, 3724.67293104],
  651. [4510.36989413, 3782.72498319],
  652. [4515.36361904, 3851.38870077],
  653. [4525.35106887, 3909.44075292],
  654. [4504.12773798, 3949.39055224],
  655. [4494.14028815, 3988.71613595],
  656. [4478.53489779, 4011.81211368],
  657. [4478.53489779, 4011.81211368],
  658. [4468.23305682, 4029.6198833 ],
  659. [4447.4560738 , 4058.86156311],
  660. [4431.29619811, 4090.4117966 ],
  661. [4406.67162563, 4125.04010164],
  662. [4378.1994637 , 4147.35612045],
  663. [4364.34814169, 4188.91008651],
  664. [4370.50428481, 4253.54958926],
  665. [4393.5898215 , 4328.96234247],
  666. [4408.9801793 , 4376.67245164],
  667. [4430.52668022, 4426.69111449],
  668. [4467.46353893, 4482.09640256],
  669. [4483.62341462, 4519.03326127],
  670. [4501.32232609, 4556.73963788],
  671. [4526.71641646, 4582.90324614],
  672. [4560.57520361, 4604.44974705],
  673. [4598.28158022, 4618.30106907],
  674. [4661.38204719, 4620.60962274],
  675. [4722.17396049, 4629.84383742],
  676. [4781.42683801, 4639.0780521 ],
  677. [4828.3674293 , 4653.69889201],
  678. [4864.53477012, 4660.62455302],
  679. [4887.62030682, 4689.86623283],
  680. [4901.47162884, 4703.71755485],
  681. [4901.47162884, 4703.71755485],
  682. [4934.5608981 , 4732.18971678],
  683. [4945.33414856, 4759.12284292],
  684. [4950.72077379, 4802.21584476],
  685. [4959.95498847, 4846.84788237],
  686. [4979.19293572, 4880.70666953],
  687. [4986.11859673, 4928.4167787 ],
  688. [4999.20040086, 4968.43170898],
  689. [5013.05172287, 5006.90760347],
  690. [5036.13725957, 5057.69578421],
  691. [5058.45327838, 5086.93746402],
  692. [5067.68749306, 5166.19780668],
  693. [5069.22652884, 5213.90791586],
  694. [5063.07038572, 5287.0121154 ],
  695. [5038.44581324, 5330.10511723],
  696. [4994.58329352, 5376.27619063],
  697. [4953.02932746, 5423.9862998 ],
  698. [4889.1593426 , 5467.07930163],
  699. [4849.14441232, 5484.7782131 ],
  700. [4816.05514306, 5499.39905301],
  701. [4789.8915348 , 5513.25037503],
  702. [4782.96587379, 5514.78941081],
  703. [4766.80599811, 5516.32844659],
  704. [4727.56058572, 5512.48085714],
  705. [4669.07722609, 5517.09796448],
  706. [4602.89868756, 5517.09796448],
  707. [4559.80568572, 5520.94555393],
  708. [4507.47846921, 5512.48085714],
  709. [4481.31486095, 5510.94182136],
  710. [4439.7608949 , 5479.39158787],
  711. [4389.74223205, 5443.22424705],
  712. [4333.56742609, 5400.13124521],
  713. [4318.17706829, 5370.8895654 ],
  714. [4315.09899673, 5343.18692136],
  715. [4318.94658618, 5305.48054475],
  716. [4329.71983664, 5279.3169365 ],
  717. [4331.25887242, 5253.15332824],
  718. [4335.10646187, 5224.68116631],
  719. [4335.10646187, 5224.68116631],
  720. [4318.94658618, 5227.75923787],
  721. [4280.47069169, 5215.44695164],
  722. [4245.07286875, 5206.98225485],
  723. [4178.12481233, 5196.97852228],
  724. [4135.80132839, 5196.97852228],
  725. [4079.62652242, 5186.97478971],
  726. [4058.84953939, 5181.58816448],
  727. [4045.76773527, 5160.04166356],
  728. [4023.45171646, 5120.02673329],
  729. [3994.21003664, 5083.08987457],
  730. [3982.66726829, 5062.31289154],
  731. [3964.96835683, 5016.14181815],
  732. [3954.19510637, 4986.90013833],
  733. [3956.50366004, 4971.50978054],
  734. [3961.12076738, 4947.65472595],
  735. [3981.8977504 , 4939.19002916],
  736. [4022.68219857, 4937.65099338],
  737. [4051.1543605 , 4944.57665439],
  738. [4068.85327196, 4939.19002916],
  739. [4062.69712884, 4928.4167787 ],
  740. [4050.38484261, 4897.63606311],
  741. [4017.29557334, 4853.00402549],
  742. [3971.12449995, 4809.14150577],
  743. [3938.80474857, 4778.36079017],
  744. [3899.55933619, 4729.11164522],
  745. [3876.47379949, 4696.79189384],
  746. [3876.47379949, 4696.79189384],
  747. [3854.15778068, 4666.78069613],
  748. [3835.68935132, 4633.69142687],
  749. [3827.99417242, 4610.60589017],
  750. [3820.29899353, 4604.44974705],
  751. [3805.67815362, 4611.37540806],
  752. [3787.20972426, 4604.44974705],
  753. [3754.12045499, 4590.59842503],
  754. [3734.88250775, 4562.12626311],
  755. [3724.87877518, 4532.1150654 ],
  756. [3727.18732885, 4489.79158146],
  757. [3730.26540041, 4438.23388283],
  758. [3747.96431187, 4408.99220302],
  759. [3751.81190132, 4388.98473788],
  760. [3709.48841738, 4333.57944981],
  761. [3674.09059444, 4281.25223329],
  762. [3652.54409353, 4262.78380394],
  763. [3623.30241371, 4234.31164201],
  764. [3606.37302013, 4225.84694522],
  765. [3595.59976967, 4215.07369476],
  766. [3573.28375087, 4199.68333696],
  767. [3556.35435729, 4193.52719384],
  768. [3537.11641004, 4194.29671173],
  769. [3530.96026692, 4189.6796044 ],
  770. [3518.64798068, 4172.75021082],
  771. [3496.33196188, 4144.27804889],
  772. [3459.39510316, 4145.04756678],
  773. [3427.07535179, 4125.80961953],
  774. [3390.13849307, 4075.79095669],
  775. [3347.04549124, 4040.39313375],
  776. [3330.11609766, 4000.37820348],
  777. [3330.11609766, 4000.37820348],
  778. [3307.80007885, 3971.90604155],
  779. [3271.63273802, 3911.11412825],
  780. [3220.0750394 , 3864.17353697],
  781. [3158.51360821, 3828.77571403],
  782. [3112.34253481, 3794.91692688],
  783. [3057.70676463, 3770.2923544 ],
  784. [3030.77363849, 3754.13247871],
  785. [2998.45388711, 3714.11754844],
  786. [2969.21220729, 3690.26249385],
  787. [2949.20474216, 3678.7197255 ],
  788. [2904.57270454, 3652.55611724],
  789. [2878.40909628, 3648.70852779],
  790. [2846.8588628 , 3641.01334889],
  791. [2776.06321693, 3621.77540165],
  792. [2716.04082152, 3611.77166908],
  793. [2674.48685546, 3584.06902504],
  794. [2674.48685546, 3584.06902504],
  795. [2657.55746188, 3551.74927367],
  796. [2637.54999675, 3527.89421908],
  797. [2623.69867473, 3502.50012871],
  798. [2590.60940546, 3486.34025302],
  799. [2529.81749216, 3473.2584489 ],
  800. [2497.49774078, 3463.25471633],
  801. [2445.94004216, 3467.87182367],
  802. [2396.69089721, 3465.56327 ],
  803. [2363.60162794, 3463.25471633],
  804. [2315.89151877, 3448.63387642],
  805. [2269.72044537, 3419.3921966 ],
  806. [2238.17021189, 3390.15051679],
  807. [2187.38203115, 3373.22112321],
  808. [2146.59758299, 3349.36606862],
  809. [2114.27783161, 3315.50728147],
  810. [2067.33724033, 3298.57788789],
  811. [2045.79073941, 3272.41427963],
  812. [2020.39664904, 3255.48488605],
  813. [1980.38171877, 3223.16513468],
  814. [1942.67534216, 3197.77104431],
  815. [1926.51546648, 3188.53682963],
  816. [1901.890894 , 3165.45129294],
  817. [1901.890894 , 3165.45129294],
  818. [1879.57487519, 3153.1390067 ],
  819. [1848.7941596 , 3113.89359431],
  820. [1812.62681877, 3095.42516495],
  821. [1768.76429905, 3076.9567356 ],
  822. [1740.29213712, 3057.71878835],
  823. [1714.12852886, 3047.71505578],
  824. [1684.11733116, 3036.94180532],
  825. [1661.03179446, 3017.70385807],
  826. [1644.87191877, 3001.54398239],
  827. [1612.5521674 , 2997.69639294],
  828. [1562.53350455, 2996.92687505],
  829. [1511.74532382, 2975.38037413],
  830. [1455.57051785, 2953.06435532],
  831. [1407.86040868, 2917.66653239],
  832. [1372.46258575, 2887.65533468],
  833. [1333.98669125, 2865.33931587],
  834. [1323.21344079, 2867.64786954],
  835. [1303.97549354, 2874.57353055],
  836. [1303.97549354, 2874.57353055],
  837. [1291.66325427, 2863.0307622 ],
  838. [1270.11675336, 2849.94895808],
  839. [1238.56651987, 2844.56233285],
  840. [1196.24303593, 2863.80028009],
  841. [1190.08689281, 2879.19063789],
  842. [1185.46978547, 2903.04569248],
  843. [1173.92701712, 2933.82640807],
  844. [1133.91208684, 2949.98628376],
  845. [1096.20571024, 2966.91567734],
  846. [1070.81161987, 2976.14989202],
  847. [1032.33572538, 2982.30603514],
  848. [ 953.07538272, 3000.7744645 ],
  849. [ 913.82997033, 3004.62205395],
  850. [ 876.89311162, 3003.08301817],
  851. [ 852.26853914, 3011.54771495],
  852. [ 825.33541299, 3033.86373376],
  853. [ 813.02312675, 3047.71505578],
  854. [ 795.32421529, 3058.48830624],
  855. [ 781.47289327, 3066.95300303],
  856. [ 768.1972094 , 3078.6097701 ]])
  857. # %%
  858. #Load data using FISHscale
  859. d970 = dataset.Dataset(fname_970,
  860. gene_label = 'decoded_genes',
  861. x_label = 'r_transformed',
  862. y_label = 'c_transformed',
  863. pixel_size='0.27 micrometer',
  864. polygon = pol_970,
  865. z = 970,
  866. reparse=False)
  867. # %%
  868. folder = '/home/lars/storage/Documents/EEL/Human_embryo/5_week/Data/'
  869. points_970 = pd.read_parquet(folder + '/970um/LBEXP20211113_EEL_HE_5w_970um_RNA_transformed_assigned.parquet')
  870. # %% [markdown]
  871. # # Draw subdivision lines (Already done, load results in next section)
  872. # %%
  873. viewer = napari.Viewer()
  874. for g in ['SOX2', 'SOX9','PAX6', 'STMN2']:
  875. xy = d970.get_gene(g)
  876. _ = viewer.add_points(xy, face_color=[d970.color_dict[g]], edge_width=0, name=g, opacity=0.5)
  877. for n in pol_970_names[::1]:
  878. xy = polygons[970][n]
  879. xy = np.flip(xy, axis=1)
  880. xy = (xy * (1/0.27)) / 4
  881. origin = np.array(np.flip(z_970.shape))/2
  882. origin = origin / 2
  883. xy = rotate(xy, origin=origin, degrees=180) #/ 5 #np.array(np.flip(z_970.shape))/2
  884. xy = xy + np.array([-12000, -5000])
  885. _ = viewer.add_shapes(xy, shape_type='polygon', edge_width=5, edge_color='coral', opacity=0.2)
  886. _ = viewer.add_points(pol_970, face_color=[1, 0, 0], edge_width=0, name='brain_polygon', opacity=1, size=15)
  887. # %%
  888. lines_970 = viewer.layers['Lines'].data
  889. pol_970_new = viewer.layers['brain_polygon'].data
  890. # %%
  891. #pkl.dump(lines_970, open('polygons/subdivision_lines_970', 'wb'))
  892. #pkl.dump(pol_970_new, open('polygons/Ventricular_zone_970', 'wb'))
  893. # %%
  894. lines_970 = pkl.load(open('polygons/subdivision_lines_970', 'rb'))
  895. pol_970_new = pkl.load(open('polygons/Ventricular_zone_970', 'rb'))
  896. # %% [markdown]
  897. # # Run the 2 collapsed cells below to load data
  898. # %%
  899. pol_970_new = np.array([[4472.7747222 , 3451.07754822],
  900. [4428.97201769, 3546.30013274],
  901. [4391.62877798, 3604.19775172],
  902. [4371.25190742, 3647.07310406],
  903. [4364.80745649, 3695.45577425],
  904. [4368.47508388, 3743.85997891],
  905. [4358.12741406, 3797.95227043],
  906. [4330.3754801 , 3834.71991509],
  907. [4319.85030158, 3875.65116491],
  908. [4305.81673021, 3922.42973614],
  909. [4287.10530172, 3962.19152168],
  910. [4263.7160161 , 4030.02044996],
  911. [4234.47940909, 4090.83259256],
  912. [4250.85190902, 4161.0004494 ],
  913. [4288.274766 , 4254.55759185],
  914. [4304.64726593, 4311.86134161],
  915. [4317.51137302, 4343.43687719],
  916. [4322.18923014, 4386.70705557],
  917. [4361.95101568, 4433.4856268 ],
  918. [4404.05172979, 4507.16187648],
  919. [4449.66083673, 4586.68544757],
  920. [4498.77833652, 4652.17544728],
  921. [4552.57369343, 4709.47919704],
  922. [4595.84387182, 4764.44401823],
  923. [4633.2667288 , 4792.51116097],
  924. [4691.73994283, 4808.8836609 ],
  925. [4691.73994283, 4808.8836609 ],
  926. [4740.85744262, 4792.51116097],
  927. [4796.99172809, 4792.51116097],
  928. [4842.60083504, 4804.20580377],
  929. [4861.31226353, 4826.42562511],
  930. [4857.80387069, 4856.8316964 ],
  931. [4885.87101343, 4900.10187479],
  932. [4904.58244192, 4944.54151745],
  933. [4908.09083476, 4988.98116012],
  934. [4927.97172753, 5015.87883858],
  935. [4944.34422746, 5061.48794552],
  936. [4956.03887027, 5128.14740952],
  937. [4959.54726311, 5172.58705219],
  938. [4952.53047742, 5260.29687324],
  939. [4922.12440613, 5282.51669457],
  940. [4895.22672767, 5319.93955155],
  941. [4868.32904922, 5349.17615857],
  942. [4833.2451208 , 5371.3959799 ],
  943. [4792.31387097, 5397.12419408],
  944. [4743.19637118, 5405.31044404],
  945. [4680.04530003, 5409.98830117],
  946. [4621.57208599, 5412.32722973],
  947. [4589.99655041, 5420.51347969],
  948. [4559.59047912, 5418.17455113],
  949. [4520.99815785, 5391.27687267],
  950. [4485.91422943, 5370.22651562],
  951. [4485.91422943, 5370.22651562],
  952. [4464.86387238, 5370.22651562],
  953. [4443.81351533, 5342.15937289],
  954. [4447.32190817, 5314.09223015],
  955. [4464.86387238, 5276.66937317],
  956. [4449.66083673, 5226.3824091 ],
  957. [4429.77994396, 5167.90919506],
  958. [4412.23797975, 5130.48633808],
  959. [4359.61208712, 5063.82687408],
  960. [4306.98619449, 5003.01473149],
  961. [4246.17405189, 4930.50794609],
  962. [4176.00619505, 4890.74616054],
  963. [4137.41387379, 4867.35687493],
  964. [4111.68565962, 4834.61187507],
  965. [4107.00780249, 4824.08669654],
  966. [4077.77119548, 4804.20580377],
  967. [4028.65369569, 4755.08830398],
  968. [3957.31637457, 4682.58151858],
  969. [3916.38512474, 4619.43044743],
  970. [3904.69048194, 4601.88848322],
  971. [3904.69048194, 4566.8045548 ],
  972. [3888.31798201, 4550.43205487],
  973. [3849.72566074, 4530.55116209],
  974. [3841.60013547, 4524.09111299],
  975. [3816.97556299, 4498.69702262],
  976. [3818.51459877, 4468.68582492],
  977. [3832.36592079, 4428.67089464],
  978. [3842.36965336, 4390.96451804],
  979. [3840.06109969, 4323.24694373],
  980. [3810.81941987, 4273.22828088],
  981. [3769.98568179, 4248.21100356],
  982. [3734.68143689, 4224.7068666 ],
  983. [3695.59978606, 4199.80156002],
  984. [3673.98310162, 4183.8263395 ],
  985. [3643.38954209, 4160.60043575],
  986. [3613.51871144, 4128.8864407 ],
  987. [3579.23882313, 4101.48792528],
  988. [3522.66380961, 4068.21400085],
  989. [3478.2866107 , 4039.76773433],
  990. [3462.82857027, 4020.74283856],
  991. [3452.52070909, 3989.81925501],
  992. [3428.57207647, 3969.22942805],
  993. [3380.31409807, 3919.79240482],
  994. [3335.43428599, 3860.23936384],
  995. [3279.36640446, 3794.34896474],
  996. [3223.75156043, 3755.16796536],
  997. [3171.05976746, 3697.46614764],
  998. [3104.89539941, 3650.18717439],
  999. [3058.3314086 , 3612.12824534],
  1000. [3026.81939362, 3581.94785665],
  1001. [2997.26552634, 3561.3924536 ],
  1002. [2957.0934291 , 3533.67563908],
  1003. [2912.78954145, 3525.36047353],
  1004. [2847.21675925, 3510.83321166],
  1005. [2755.94325717, 3475.76041095],
  1006. [2791.62431511, 3497.96195811],
  1007. [2719.38071059, 3440.87476631],
  1008. [2689.79061404, 3416.55432244],
  1009. [2641.80227166, 3389.94871942],
  1010. [2594.3703957 , 3370.73416668],
  1011. [2539.85159806, 3342.58702698],
  1012. [2485.61353452, 3326.54412383],
  1013. [2414.4251838 , 3323.49194768],
  1014. [2332.73681403, 3301.85436963],
  1015. [2250.41929342, 3266.24599612],
  1016. [2208.21028112, 3237.49310008],
  1017. [2167.72746067, 3209.20559333],
  1018. [2129.39443412, 3182.67017383],
  1019. [2068.60252082, 3148.36939191],
  1020. [2024.67231847, 3114.39613311],
  1021. [1911.69355571, 3029.77005883],
  1022. [1811.28441878, 2945.98368596],
  1023. [1714.41874269, 2901.77274951],
  1024. [1623.68581521, 2857.62949568],
  1025. [1556.68846887, 2825.28384889],
  1026. [1512.24358732, 2810.73319251],
  1027. [1447.43782211, 2790.74912188],
  1028. [1472.01810647, 2805.02154506],
  1029. [1415.86419411, 2765.63326472],
  1030. [1370.20779991, 2726.90003063],
  1031. [1334.97373854, 2703.13855408],
  1032. [1291.81305408, 2664.54818794],
  1033. [1240.23196095, 2634.53699023],
  1034. [1197.32611518, 2611.26679836],
  1035. [1154.74529164, 2589.27830268],
  1036. [1116.03545206, 2569.61925427],
  1037. [1072.97084653, 2557.4707296 ],
  1038. [1030.83451866, 2567.75519627],
  1039. [ 967.52350111, 2603.43625421],
  1040. [ 995.27543506, 2589.95674344],
  1041. [ 946.16413278, 2626.52179091],
  1042. [ 908.94904086, 2668.68151329],
  1043. [ 883.5833468 , 2698.78128723],
  1044. [ 844.92029623, 2724.89560557],
  1045. [ 814.39692023, 2749.98306643],
  1046. [ 770.20687739, 2764.17780337],
  1047. [ 748.26266982, 2802.39385737],
  1048. [ 732.42781636, 2879.86032556],
  1049. [ 725.40607641, 2958.21078327],
  1050. [ 718.87312025, 3060.4914809 ],
  1051. [ 754.29433769, 3125.87710704],
  1052. [ 775.84083861, 3156.65782263],
  1053. [ 835.09371613, 3234.37912951],
  1054. [ 865.10491384, 3292.86248915],
  1055. [ 909.73697494, 3332.10790153],
  1056. [ 969.75937035, 3411.36824419],
  1057. [1029.78176576, 3504.47990887],
  1058. [1082.87850017, 3582.97073364],
  1059. [1149.82655659, 3688.39468456],
  1060. [1213.69654145, 3772.27213456],
  1061. [1257.55906117, 3848.45440566],
  1062. [1314.50338503, 3935.40992722],
  1063. [1368.36963732, 4011.59219832],
  1064. [1392.22469191, 4052.37664648],
  1065. [1431.47010429, 4143.94927538],
  1066. [1485.33635659, 4208.58877813],
  1067. [1514.5780364 , 4258.60744097],
  1068. [1527.65984053, 4313.24321116],
  1069. [1527.65984053, 4313.24321116],
  1070. [1550.74537723, 4357.87524877],
  1071. [1579.98705704, 4437.90510932],
  1072. [1609.99825475, 4482.53714694],
  1073. [1669.25113227, 4545.63761391],
  1074. [1723.11738457, 4612.58567033],
  1075. [1770.82749374, 4676.45565519],
  1076. [1802.37772723, 4732.63046115],
  1077. [1819.3071208 , 4767.2587662 ],
  1078. [1858.55253319, 4829.58971528],
  1079. [1897.02842768, 4881.9169318 ],
  1080. [1917.03589282, 4918.85379051],
  1081. [1933.9652864 , 4971.95052491],
  1082. [1945.50805475, 5013.50449097],
  1083. [1982.44491346, 5078.14399372],
  1084. [2017.8427364 , 5111.23326299],
  1085. [2050.16248777, 5155.8653006 ],
  1086. [2051.70152355, 5162.02144372],
  1087. [2081.71272126, 5203.57540977],
  1088. [2118.64957998, 5248.20744739],
  1089. [2174.05486805, 5308.99936069],
  1090. [2241.00292447, 5382.10356023],
  1091. [2284.0959263 , 5430.5831873 ],
  1092. [2341.04025016, 5495.22269005],
  1093. [2372.59048364, 5534.46810243],
  1094. [2411.06637814, 5556.01460335],
  1095. [2448.77275474, 5592.95146206],
  1096. [2475.70588089, 5629.88832078],
  1097. [2522.64647217, 5683.75457307],
  1098. [2565.73947401, 5702.99252032],
  1099. [2605.75440428, 5716.84384234],
  1100. [2651.15595979, 5741.46841482],
  1101. [2651.15595979, 5741.46841482],
  1102. [2687.32330061, 5761.47587995],
  1103. [2758.11894648, 5799.18225656],
  1104. [2844.30495015, 5853.04850885],
  1105. [2897.40168456, 5883.05970656],
  1106. [2966.65829465, 5915.37945793],
  1107. [3064.38706667, 5941.54306619],
  1108. [3139.03030199, 5959.24197766],
  1109. [3209.82594786, 5958.47245977],
  1110. [3265.23123593, 5966.16763867],
  1111. [3265.23123593, 5966.16763867],
  1112. [3321.40604189, 5969.24571023],
  1113. [3389.1236162 , 5969.24571023],
  1114. [3454.53263685, 5964.62860289],
  1115. [3512.24647859, 5960.01149555],
  1116. [3585.35067813, 5960.01149555],
  1117. [3657.68535978, 5962.32004922],
  1118. [3722.32486253, 5964.62860289],
  1119. [3766.95690015, 5996.94835426],
  1120. [3769.26545382, 5996.94835426],
  1121. [3794.87989878, 6039.04901933],
  1122. [3833.47222004, 6090.50544768],
  1123. [3907.14846973, 6138.45348318],
  1124. [3977.31632657, 6144.30080459],
  1125. [4058.00936193, 6177.04580445],
  1126. [4131.68561162, 6194.58776866],
  1127. [4232.25953976, 6198.0961615 ],
  1128. [4325.81668221, 6208.62134002],
  1129. [4432.23793175, 6213.29919715],
  1130. [4583.09882396, 6203.9434829 ],
  1131. [4632.21632375, 6206.28241146],
  1132. [4773.72150171, 6193.41830438],
  1133. [4773.72150171, 6193.41830438],
  1134. [4903.53203687, 6164.18169736],
  1135. [5053.22346479, 6110.38634045],
  1136. [5169.00042858, 6033.20169792],
  1137. [5316.35292795, 5919.7636627 ],
  1138. [5450.84132022, 5811.00348459],
  1139. [5531.53435559, 5708.09062789],
  1140. [5604.04114099, 5636.75330677],
  1141. [5678.88685496, 5518.63741442],
  1142. [5723.32649762, 5430.92759337],
  1143. [5723.32649762, 5430.92759337],
  1144. [5773.61374721, 5345.5569864 ],
  1145. [5828.5785684 , 5200.54341559],
  1146. [5875.35713962, 5103.4778803 ],
  1147. [5947.86392503, 5052.02145195],
  1148. [5991.13410341, 5020.44591637],
  1149. [6022.70963899, 4973.66734514],
  1150. [6019.20124615, 4931.56663104],
  1151. [6011.01499618, 4871.92395272],
  1152. [5985.28678201, 4751.46913181],
  1153. [5963.06696068, 4635.69216802],
  1154. [5950.20285359, 4523.42359708],
  1155. [5929.15249654, 4448.57788312],
  1156. [5903.42428236, 4393.61306192],
  1157. [5881.20446103, 4358.5291335 ],
  1158. [5889.87640263, 4351.54250731],
  1159. [5936.04747603, 4341.53877474],
  1160. [6029.92865859, 4255.35277107],
  1161. [6073.79117832, 4165.31917795],
  1162. [6106.11092969, 4009.87656419],
  1163. [6129.19646639, 3755.93566052],
  1164. [6115.34514437, 3642.81653071],
  1165. [6113.0365907 , 3632.81279814],
  1166. [6106.11092969, 3591.25883208],
  1167. [6063.78744575, 3494.29957796],
  1168. [6006.07360401, 3401.18791328],
  1169. [5907.5753141 , 3320.38853484],
  1170. [5816.77220309, 3249.59288897],
  1171. [5815.23316731, 3248.05385319],
  1172. [5737.95232152, 3194.5863008 ],
  1173. [5652.89277215, 3129.71037332],
  1174. [5528.90766629, 3077.80963133],
  1175. [5393.67733725, 3088.62150571],
  1176. [5278.6306301 , 3107.65171536],
  1177. [5153.78038704, 3121.42012533],
  1178. [5055.38515233, 3164.9590187 ],
  1179. [4948.19565644, 3228.53739642],
  1180. [4897.60476002, 3257.79419184],
  1181. [4845.74676314, 3273.42298087],
  1182. [4798.47654191, 3281.37518833],
  1183. [4710.96634262, 3276.97852586],
  1184. [4642.26999067, 3285.41259928],
  1185. [4575.9523759 , 3305.59622116],
  1186. [4534.77943519, 3333.70117985],
  1187. [4502.94436294, 3381.52347849],
  1188. [ 768.1972094 , 3078.6097701 ],
  1189. [ 786.29946221, 3122.30486311],
  1190. [ 821.25553662, 3178.48426841],
  1191. [ 857.46004226, 3235.28788933],
  1192. [ 893.04033228, 3270.24396373],
  1193. [ 918.00895686, 3302.07896007],
  1194. [ 945.47444389, 3343.90140624],
  1195. [ 980.4305183 , 3370.74267766],
  1196. [1024.12561131, 3428.17051419],
  1197. [1049.71845151, 3464.37501982],
  1198. [1072.19021363, 3512.43962214],
  1199. [1101.5283475 , 3553.01363707],
  1200. [1126.49697208, 3587.34549587],
  1201. [1160.20461526, 3643.52490117],
  1202. [1182.67637738, 3679.10519119],
  1203. [1190.79118037, 3686.59577856],
  1204. [1253.83695743, 3785.84606126],
  1205. [1334.36077169, 3906.94389046],
  1206. [1381.80115838, 3993.08564525],
  1207. [1411.76350788, 4029.9143665 ],
  1208. [1440.47742614, 4094.8327904 ],
  1209. [1481.67565669, 4169.11444852],
  1210. [1522.24967163, 4236.52973488],
  1211. [1557.20574604, 4313.30825545],
  1212. [1582.79858623, 4370.11187637],
  1213. [1603.39770151, 4426.29128167],
  1214. [1630.86318854, 4470.61059029],
  1215. [1658.32867558, 4491.20970557],
  1216. [1688.91524069, 4528.03842682],
  1217. [1688.91524069, 4528.03842682],
  1218. [1714.50815708, 4556.75234508],
  1219. [1758.8274657 , 4616.05282846],
  1220. [1795.65618695, 4686.58919289],
  1221. [1842.47235804, 4752.1318324 ],
  1222. [1859.32617963, 4795.82692541],
  1223. [1899.90019456, 4838.89780281],
  1224. [1920.49930984, 4883.21711143],
  1225. [1962.94597162, 4949.38396656],
  1226. [1994.15675234, 4987.46111904],
  1227. [2002.89577095, 5015.55082169],
  1228. [2014.75586762, 5056.12483663],
  1229. [2044.0940015 , 5082.96610805],
  1230. [2060.32360747, 5114.17688877],
  1231. [2081.54693836, 5158.4961974 ],
  1232. [2101.52183803, 5179.71952829],
  1233. [2110.26085663, 5185.33746882],
  1234. [2149.58644034, 5202.19129041],
  1235. [2190.16045528, 5225.91148376],
  1236. [2195.15418019, 5271.47922361],
  1237. [2208.26270809, 5318.91961031],
  1238. [2254.45466356, 5359.49362525],
  1239. [2290.03495358, 5409.4308744 ],
  1240. [2341.84484958, 5454.99861426],
  1241. [2379.92200206, 5506.80851025],
  1242. [2436.10140736, 5547.38252519],
  1243. [2476.05120669, 5592.32604943],
  1244. [2518.49786847, 5634.77271121],
  1245. [2565.31403955, 5666.60770755],
  1246. [2617.12393555, 5679.09201984],
  1247. [2620.24501362, 5680.34045107],
  1248. [2638.34726644, 5697.81879306],
  1249. [2697.0235342 , 5735.89594554],
  1250. [2801.89175742, 5787.70584154],
  1251. [2899.89360889, 5836.39465947],
  1252. [2967.30889525, 5881.33818371],
  1253. [3061.56545303, 5907.55523951],
  1254. [3147.70720782, 5920.66376742],
  1255. [3195.77181013, 5911.3005332 ],
  1256. [3251.95121543, 5893.19828038],
  1257. [3251.95121543, 5893.19828038],
  1258. [3266.93239017, 5881.96239932],
  1259. [3286.90728984, 5849.50318737],
  1260. [3314.37277687, 5838.26730631],
  1261. [3350.57728251, 5820.16505349],
  1262. [3380.539632 , 5808.92917243],
  1263. [3427.35580308, 5799.56593822],
  1264. [3447.33070275, 5773.97309802],
  1265. [3447.33070275, 5740.26545484],
  1266. [3480.41413031, 5720.9147708 ],
  1267. [3575.91911932, 5692.82506815],
  1268. [3655.19450235, 5664.7353655 ],
  1269. [3685.15685185, 5675.34703094],
  1270. [3750.07527575, 5684.71026516],
  1271. [3784.40713454, 5694.07349938],
  1272. [3827.47801194, 5705.93359605],
  1273. [3828.10222755, 5707.80624289],
  1274. [3847.4529116 , 5698.44300868],
  1275. [3882.40898601, 5703.43673359],
  1276. [3881.16055478, 5726.53271133],
  1277. [3890.52378899, 5762.73721696],
  1278. [3897.39016075, 5783.33633224],
  1279. [3918.61349164, 5829.52828771],
  1280. [3929.8493727 , 5860.73906843],
  1281. [3938.58839131, 5881.96239932],
  1282. [3959.18750658, 5913.17318004],
  1283. [3979.78662186, 5968.10415411],
  1284. [3978.53819063, 6061.11228066],
  1285. [4015.9911275 , 6074.22080857],
  1286. [4073.41896402, 6094.81992384],
  1287. [4129.59836932, 6127.27913579],
  1288. [4182.03248094, 6131.02442948],
  1289. [4228.84865202, 6146.62981984],
  1290. [4270.67109819, 6147.25403546],
  1291. [4305.00295698, 6144.757173 ],
  1292. [4305.62717259, 6144.757173 ],
  1293. [4317.48726927, 6139.76344808],
  1294. [4343.70432507, 6129.15178264],
  1295. [4371.16981211, 6137.89080124],
  1296. [4426.72500179, 6149.1266823 ],
  1297. [4484.77705394, 6149.1266823 ],
  1298. [4535.33851871, 6152.24776037],
  1299. [4597.76008015, 6152.24776037],
  1300. [4651.44262299, 6160.98677897],
  1301. [4727.59692795, 6165.98050389],
  1302. [4763.17721797, 6159.73834774],
  1303. [4834.96201363, 6149.1266823 ],
  1304. [4893.63828139, 6132.27286071],
  1305. [4893.01406578, 6131.6486451 ],
  1306. [4922.97672006, 6129.77599825],
  1307. [4981.0287722 , 6106.0558049 ],
  1308. [5058.43150839, 6062.36071189],
  1309. [5108.99297316, 6029.27728433],
  1310. [5164.54816285, 5999.31493484],
  1311. [5213.23698077, 5955.61984182],
  1312. [5250.06570203, 5918.79112057],
  1313. [5268.16795484, 5890.07720231],
  1314. [5314.35991031, 5861.36328405],
  1315. [5314.35991031, 5861.36328405],
  1316. [5351.18832677, 5840.76416877],
  1317. [5389.26547925, 5817.04397542],
  1318. [5426.71841612, 5770.22780434],
  1319. [5459.17762807, 5713.42418342],
  1320. [5502.24850546, 5673.4743841 ],
  1321. [5556.55526392, 5633.52458478],
  1322. [5584.64496657, 5576.09674825],
  1323. [5637.07907818, 5508.05724628],
  1324. [5672.65936821, 5429.40607886],
  1325. [5718.22710806, 5369.48137987],
  1326. [5745.06837948, 5293.32707491],
  1327. [5766.29171037, 5230.28129785],
  1328. [5780.02445389, 5204.06424205],
  1329. [5780.02445389, 5204.06424205],
  1330. [5786.89082565, 5181.59217513],
  1331. [5799.37513794, 5137.27286651],
  1332. [5816.22895953, 5109.80737947],
  1333. [5846.81552463, 5069.85758015],
  1334. [5876.77787413, 5034.90150574],
  1335. [5901.7464987 , 5019.29611538],
  1336. [5921.72139836, 5001.81807818],
  1337. [5904.24336116, 4951.25661341],
  1338. [5883.64424588, 4910.68259847],
  1339. [5886.76532396, 4859.49691809],
  1340. [5873.65679605, 4806.43859086],
  1341. [5869.91150237, 4760.24663539],
  1342. [5848.06395586, 4697.82507395],
  1343. [5839.32493726, 4622.2949846 ],
  1344. [5829.96170304, 4580.47253843],
  1345. [5823.7195469 , 4530.53528928],
  1346. [5802.49621601, 4461.87157169],
  1347. [5775.03072897, 4426.29128167],
  1348. [5741.32308579, 4375.10560128],
  1349. [5730.08720473, 4359.50021092],
  1350. [5732.58406719, 4345.14325179],
  1351. [5741.32308579, 4309.56296177],
  1352. [5743.81994825, 4282.09747473],
  1353. [5772.53386651, 4259.62571261],
  1354. [5808.73837215, 4235.28130365],
  1355. [5843.69444656, 4232.16022558],
  1356. [5870.53571798, 4229.03914751],
  1357. [5904.86757678, 4212.80954153],
  1358. [5934.82992627, 4201.57366047],
  1359. [5956.05325716, 4170.98709536],
  1360. [5964.79227576, 4132.90994288],
  1361. [5986.63982227, 4101.69916216],
  1362. [5980.39766612, 4079.85161566],
  1363. [5984.76717542, 4047.39240371],
  1364. [5969.16178506, 4019.30270106],
  1365. [5962.2954133 , 3996.83093894],
  1366. [5959.79855085, 3976.85603927],
  1367. [5946.69002294, 3967.49280506],
  1368. [5942.94472926, 3953.76006154],
  1369. [5952.30796347, 3938.77888679],
  1370. [5965.41649138, 3935.03359311],
  1371. [5994.13040964, 3919.42820275],
  1372. [6014.1053093 , 3913.81026222],
  1373. [6026.58962159, 3893.83536255],
  1374. [6021.59589667, 3878.22997219],
  1375. [6017.85060299, 3864.49722868],
  1376. [6012.85687807, 3850.14026954],
  1377. [6018.4748186 , 3827.66850742],
  1378. [6017.85060299, 3790.21557056],
  1379. [6011.60844684, 3759.00478984],
  1380. [6002.24521263, 3715.93391244],
  1381. [5999.12413455, 3677.85675996],
  1382. [5998.49991894, 3677.85675996],
  1383. [5996.00305648, 3660.37872276],
  1384. [5987.88825349, 3629.16794203],
  1385. [5977.90080366, 3601.07823939],
  1386. [5956.05325716, 3580.47912411],
  1387. [5952.30796347, 3548.64412777],
  1388. [5926.71512328, 3513.06383775],
  1389. [5898.62542063, 3488.09521317],
  1390. [5863.04513061, 3465.62345105],
  1391. [5851.80924955, 3453.76335438],
  1392. [5837.45229042, 3436.28531717],
  1393. [5818.72582198, 3423.17678927],
  1394. [5796.87827548, 3406.9471833 ],
  1395. [5766.91592599, 3388.84493048],
  1396. [5745.06837948, 3390.09336171],
  1397. [5719.47553929, 3358.88258098],
  1398. [5682.64681804, 3336.41081886],
  1399. [5652.06025293, 3312.0664099 ],
  1400. [5614.60731606, 3291.46729463],
  1401. [5569.03957621, 3299.58209761],
  1402. [5542.19830479, 3292.09151024],
  1403. [5522.22340513, 3290.2188634 ],
  1404. [5512.2359553 , 3272.74082619],
  1405. [5496.00634932, 3237.78475178],
  1406. [5489.76419318, 3229.6699488 ],
  1407. [5470.41350913, 3227.17308634],
  1408. [5470.41350913, 3227.17308634],
  1409. [5457.92950163, 3239.65739863],
  1410. [5426.0945053 , 3239.03318301],
  1411. [5395.50794019, 3228.42151757],
  1412. [5368.04245315, 3234.0394581 ],
  1413. [5333.71059436, 3236.53632056],
  1414. [5298.13030434, 3244.02690793],
  1415. [5267.54373923, 3249.64484846],
  1416. [5235.08452728, 3256.51122022],
  1417. [5205.12217779, 3261.50494513],
  1418. [5163.29973162, 3267.74710128],
  1419. [5120.85306984, 3272.74082619],
  1420. [5096.50866088, 3295.21258831],
  1421. [5067.79474261, 3318.93278166],
  1422. [5023.47543399, 3337.03503448],
  1423. [4994.13730011, 3348.27091554],
  1424. [4971.04132237, 3357.63414976],
  1425. [4971.04132237, 3357.63414976],
  1426. [4955.43562722, 3368.87003082],
  1427. [4932.9638651 , 3376.9848338 ],
  1428. [4893.01406578, 3385.09963679],
  1429. [4859.3064226 , 3398.83238031],
  1430. [4824.9745638 , 3412.56512383],
  1431. [4802.50280168, 3420.0557112 ],
  1432. [4776.28574588, 3425.67365173],
  1433. [4739.45702463, 3417.55884874],
  1434. [4719.48212496, 3399.45659592],
  1435. [4687.64712863, 3388.22071486],
  1436. [4663.92693528, 3379.48169626],
  1437. [4651.44262299, 3364.50052151],
  1438. [4617.73497981, 3357.00993414],
  1439. [4594.63900208, 3359.5067966 ],
  1440. [4571.05605273, 3380.42289659],
  1441. [4549.69547784, 3418.80727997],
  1442. [4549.69547784, 3451.89070754],
  1443. [4567.17351504, 3476.2351165 ],
  1444. [4570.29459311, 3499.33109423],
  1445. [4562.80400574, 3532.4145218 ],
  1446. [4563.42822136, 3571.11588989],
  1447. [4537.21116555, 3614.18676729],
  1448. [4524.72685326, 3639.77960748],
  1449. [4527.22371572, 3680.97783803],
  1450. [4510.36989413, 3724.67293104],
  1451. [4510.36989413, 3782.72498319],
  1452. [4515.36361904, 3851.38870077],
  1453. [4525.35106887, 3909.44075292],
  1454. [4504.12773798, 3949.39055224],
  1455. [4494.14028815, 3988.71613595],
  1456. [4478.53489779, 4011.81211368],
  1457. [4478.53489779, 4011.81211368],
  1458. [4468.23305682, 4029.6198833 ],
  1459. [4447.4560738 , 4058.86156311],
  1460. [4431.29619811, 4090.4117966 ],
  1461. [4406.67162563, 4125.04010164],
  1462. [4378.1994637 , 4147.35612045],
  1463. [4364.34814169, 4188.91008651],
  1464. [4370.50428481, 4253.54958926],
  1465. [4393.5898215 , 4328.96234247],
  1466. [4408.9801793 , 4376.67245164],
  1467. [4430.52668022, 4426.69111449],
  1468. [4467.46353893, 4482.09640256],
  1469. [4483.62341462, 4519.03326127],
  1470. [4501.32232609, 4556.73963788],
  1471. [4526.71641646, 4582.90324614],
  1472. [4560.57520361, 4604.44974705],
  1473. [4598.28158022, 4618.30106907],
  1474. [4661.38204719, 4620.60962274],
  1475. [4722.17396049, 4629.84383742],
  1476. [4781.42683801, 4639.0780521 ],
  1477. [4828.3674293 , 4653.69889201],
  1478. [4864.53477012, 4660.62455302],
  1479. [4887.62030682, 4689.86623283],
  1480. [4901.47162884, 4703.71755485],
  1481. [4901.47162884, 4703.71755485],
  1482. [4934.5608981 , 4732.18971678],
  1483. [4945.33414856, 4759.12284292],
  1484. [4950.72077379, 4802.21584476],
  1485. [4959.95498847, 4846.84788237],
  1486. [4979.19293572, 4880.70666953],
  1487. [4986.11859673, 4928.4167787 ],
  1488. [4999.20040086, 4968.43170898],
  1489. [5013.05172287, 5006.90760347],
  1490. [5036.13725957, 5057.69578421],
  1491. [5058.45327838, 5086.93746402],
  1492. [5067.68749306, 5166.19780668],
  1493. [5069.22652884, 5213.90791586],
  1494. [5063.07038572, 5287.0121154 ],
  1495. [5038.44581324, 5330.10511723],
  1496. [4994.58329352, 5376.27619063],
  1497. [4953.02932746, 5423.9862998 ],
  1498. [4889.1593426 , 5467.07930163],
  1499. [4849.14441232, 5484.7782131 ],
  1500. [4816.05514306, 5499.39905301],
  1501. [4789.8915348 , 5513.25037503],
  1502. [4782.96587379, 5514.78941081],
  1503. [4766.80599811, 5516.32844659],
  1504. [4727.56058572, 5512.48085714],
  1505. [4669.07722609, 5517.09796448],
  1506. [4602.89868756, 5517.09796448],
  1507. [4559.80568572, 5520.94555393],
  1508. [4507.47846921, 5512.48085714],
  1509. [4481.31486095, 5510.94182136],
  1510. [4439.7608949 , 5479.39158787],
  1511. [4389.74223205, 5443.22424705],
  1512. [4333.56742609, 5400.13124521],
  1513. [4318.17706829, 5370.8895654 ],
  1514. [4315.09899673, 5343.18692136],
  1515. [4318.94658618, 5305.48054475],
  1516. [4329.71983664, 5279.3169365 ],
  1517. [4331.25887242, 5253.15332824],
  1518. [4335.10646187, 5224.68116631],
  1519. [4335.10646187, 5224.68116631],
  1520. [4316.05757897, 5214.75870544],
  1521. [4291.30446872, 5199.55741199],
  1522. [4270.35168182, 5181.70344177],
  1523. [4246.73873353, 5157.97692497],
  1524. [4221.74929283, 5134.1426155 ],
  1525. [4206.02058778, 5121.24987572],
  1526. [4194.63287818, 5112.97424328],
  1527. [4180.10657045, 5098.65026039],
  1528. [4167.90207687, 5084.63639499],
  1529. [4161.05020292, 5071.53384574],
  1530. [4150.95193817, 5056.53487713],
  1531. [4136.14203391, 5031.30910599],
  1532. [4126.09103526, 5017.95696582],
  1533. [4116.84356009, 5002.56660802],
  1534. [4108.460135 , 4992.43433768],
  1535. [4100.34704594, 4982.52513728],
  1536. [4089.85161616, 4971.59682808],
  1537. [4084.37794339, 4959.02169043],
  1538. [4068.85327196, 4939.19002916],
  1539. [4062.69712884, 4928.4167787 ],
  1540. [4050.38484261, 4897.63606311],
  1541. [4015.85106974, 4853.00402549],
  1542. [3971.12449995, 4809.14150577],
  1543. [3938.80474857, 4778.36079017],
  1544. [3899.55933619, 4729.11164522],
  1545. [3876.47379949, 4696.79189384],
  1546. [3876.47379949, 4696.79189384],
  1547. [3854.15778068, 4666.78069613],
  1548. [3835.68935132, 4633.69142687],
  1549. [3827.99417242, 4610.60589017],
  1550. [3820.29899353, 4604.44974705],
  1551. [3805.67815362, 4611.37540806],
  1552. [3787.20972426, 4604.44974705],
  1553. [3754.12045499, 4590.59842503],
  1554. [3734.88250775, 4562.12626311],
  1555. [3724.87877518, 4532.1150654 ],
  1556. [3727.18732885, 4489.79158146],
  1557. [3730.26540041, 4438.23388283],
  1558. [3747.96431187, 4408.99220302],
  1559. [3751.81190132, 4388.98473788],
  1560. [3709.48841738, 4333.57944981],
  1561. [3674.09059444, 4281.25223329],
  1562. [3652.54409353, 4262.78380394],
  1563. [3623.30241371, 4234.31164201],
  1564. [3606.37302013, 4225.84694522],
  1565. [3595.59976967, 4215.07369476],
  1566. [3573.28375087, 4199.68333696],
  1567. [3556.35435729, 4193.52719384],
  1568. [3537.11641004, 4194.29671173],
  1569. [3530.96026692, 4189.6796044 ],
  1570. [3518.64798068, 4172.75021082],
  1571. [3496.33196188, 4144.27804889],
  1572. [3459.39510316, 4145.04756678],
  1573. [3427.07535179, 4125.80961953],
  1574. [3390.13849307, 4075.79095669],
  1575. [3347.04549124, 4040.39313375],
  1576. [3330.11609766, 4000.37820348],
  1577. [3330.11609766, 4000.37820348],
  1578. [3307.80007885, 3971.90604155],
  1579. [3271.63273802, 3911.11412825],
  1580. [3220.0750394 , 3864.17353697],
  1581. [3158.51360821, 3828.77571403],
  1582. [3112.34253481, 3794.91692688],
  1583. [3057.70676463, 3770.2923544 ],
  1584. [3030.77363849, 3754.13247871],
  1585. [2998.45388711, 3714.11754844],
  1586. [2969.21220729, 3690.26249385],
  1587. [2949.20474216, 3678.7197255 ],
  1588. [2904.57270454, 3652.55611724],
  1589. [2878.40909628, 3648.70852779],
  1590. [2846.8588628 , 3641.01334889],
  1591. [2776.06321693, 3621.77540165],
  1592. [2716.04082152, 3611.77166908],
  1593. [2674.48685546, 3584.06902504],
  1594. [2674.48685546, 3584.06902504],
  1595. [2657.55746188, 3551.74927367],
  1596. [2637.54999675, 3527.89421908],
  1597. [2623.69867473, 3502.50012871],
  1598. [2590.60940546, 3486.34025302],
  1599. [2529.81749216, 3473.2584489 ],
  1600. [2497.49774078, 3463.25471633],
  1601. [2445.94004216, 3467.87182367],
  1602. [2396.69089721, 3465.56327 ],
  1603. [2363.60162794, 3463.25471633],
  1604. [2315.89151877, 3448.63387642],
  1605. [2269.72044537, 3419.3921966 ],
  1606. [2238.17021189, 3390.15051679],
  1607. [2187.38203115, 3373.22112321],
  1608. [2146.59758299, 3349.36606862],
  1609. [2114.27783161, 3315.50728147],
  1610. [2067.33724033, 3298.57788789],
  1611. [2045.79073941, 3272.41427963],
  1612. [2020.39664904, 3255.48488605],
  1613. [1980.38171877, 3223.16513468],
  1614. [1942.67534216, 3197.77104431],
  1615. [1926.51546648, 3188.53682963],
  1616. [1901.890894 , 3165.45129294],
  1617. [1901.890894 , 3165.45129294],
  1618. [1879.57487519, 3153.1390067 ],
  1619. [1848.7941596 , 3113.89359431],
  1620. [1812.62681877, 3095.42516495],
  1621. [1768.76429905, 3076.9567356 ],
  1622. [1740.29213712, 3057.71878835],
  1623. [1714.12852886, 3047.71505578],
  1624. [1684.11733116, 3036.94180532],
  1625. [1661.03179446, 3017.70385807],
  1626. [1644.87191877, 3001.54398239],
  1627. [1612.5521674 , 2997.69639294],
  1628. [1562.53350455, 2996.92687505],
  1629. [1511.74532382, 2975.38037413],
  1630. [1455.57051785, 2953.06435532],
  1631. [1407.86040868, 2917.66653239],
  1632. [1372.46258575, 2887.65533468],
  1633. [1333.98669125, 2865.33931587],
  1634. [1323.21344079, 2867.64786954],
  1635. [1303.97549354, 2874.57353055],
  1636. [1303.97549354, 2874.57353055],
  1637. [1291.66325427, 2863.0307622 ],
  1638. [1270.11675336, 2849.94895808],
  1639. [1238.56651987, 2844.56233285],
  1640. [1196.24303593, 2863.80028009],
  1641. [1190.08689281, 2879.19063789],
  1642. [1185.46978547, 2903.04569248],
  1643. [1173.92701712, 2933.82640807],
  1644. [1133.91208684, 2949.98628376],
  1645. [1096.20571024, 2966.91567734],
  1646. [1070.81161987, 2976.14989202],
  1647. [1032.33572538, 2982.30603514],
  1648. [ 953.07538272, 3000.7744645 ],
  1649. [ 913.82997033, 3004.62205395],
  1650. [ 876.89311162, 3003.08301817],
  1651. [ 852.26853914, 3011.54771495],
  1652. [ 825.33541299, 3033.86373376],
  1653. [ 813.02312675, 3047.71505578],
  1654. [ 795.32421529, 3058.48830624],
  1655. [ 781.47289327, 3066.95300303],
  1656. [ 768.1972094 , 3078.6097701 ]])
  1657. # %%
  1658. from numpy import array
  1659. lines_970 = np.array([array([[ 842.25749665, 3082.56013913],
  1660. [ 696.61790863, 3188.02328908]]),
  1661. array([[ 882.43393473, 3157.89096052],
  1662. [ 751.86051098, 3263.35411047]]),
  1663. array([[ 932.65448232, 3233.22178191],
  1664. [ 812.1251681 , 3338.68493186]]),
  1665. array([[1007.98530371, 3313.57465806],
  1666. [ 872.38982521, 3414.01575325]]),
  1667. array([[1088.33817986, 3398.94958897],
  1668. [ 927.63242756, 3499.39068416]]),
  1669. array([[1153.62489173, 3494.3686294 ],
  1670. [1002.96324895, 3589.78766983]]),
  1671. array([[1203.84543933, 3584.76561507],
  1672. [1058.20585131, 3685.20671026]]),
  1673. array([[1259.08804168, 3700.27287453],
  1674. [1118.47050842, 3785.64780544]]),
  1675. array([[1329.39680831, 3790.6698602 ],
  1676. [1173.71311077, 3871.02273635]]),
  1677. array([[1369.57324639, 3871.02273635],
  1678. [1223.93365836, 3956.39766726]]),
  1679. array([[1429.8379035 , 3951.3756125 ],
  1680. [1279.17626072, 4036.75054341]]),
  1681. array([[1475.03639633, 4041.77259817],
  1682. [1339.44091783, 4117.10341956]]),
  1683. array([[1530.27899869, 4127.14752908],
  1684. [1384.63941066, 4212.52245999]]),
  1685. array([[1575.47749152, 4227.58862427],
  1686. [1429.8379035 , 4302.91944566]]),
  1687. array([[1620.67598435, 4328.02971945],
  1688. [1485.08050585, 4403.36054084]]),
  1689. array([[1690.98475098, 4423.44875988],
  1690. [1530.27899869, 4508.82369079]]),
  1691. array([[1736.18324382, 4513.84574555],
  1692. [1605.60982008, 4599.22067646]]),
  1693. array([[1816.53611997, 4594.1986217 ],
  1694. [1675.91858671, 4679.57355261]]),
  1695. array([[1856.71255804, 4664.50738833],
  1696. [1721.11707954, 4754.904374 ]]),
  1697. array([[1906.93310564, 4749.88231924],
  1698. [1776.35968189, 4845.30135967]]),
  1699. array([[1967.19776275, 4860.36752395],
  1700. [1841.64639377, 4950.76450961]]),
  1701. array([[2037.50652938, 4935.69834534],
  1702. [1881.82283184, 5051.2056048 ]]),
  1703. array([[2087.72707697, 5036.13944052],
  1704. [1947.10954371, 5151.64669999]]),
  1705. array([[2158.0358436 , 5116.49231667],
  1706. [2012.39625558, 5231.99957614]]),
  1707. array([[2243.41077451, 5181.77902854],
  1708. [2097.77118649, 5322.39656181]]),
  1709. array([[2283.58721259, 5287.24217849],
  1710. [2158.0358436 , 5402.74943796]]),
  1711. array([[2348.87392446, 5362.57299988],
  1712. [2228.34461024, 5498.16847838]]),
  1713. array([[2444.29296489, 5442.92587603],
  1714. [2308.69748639, 5573.49929977]]),
  1715. array([[2504.557622 , 5513.23464266],
  1716. [2379.00625302, 5653.85217592]]),
  1717. array([[2584.91049815, 5563.45519026],
  1718. [2459.35912917, 5734.20505207]]),
  1719. array([[2675.30748382, 5608.65368309],
  1720. [2544.73406008, 5814.55792822]]),
  1721. array([[2770.72652425, 5673.94039496],
  1722. [2650.19721002, 5859.75642106]]),
  1723. array([[2856.10145516, 5724.16094255],
  1724. [2760.68241473, 5904.95491389]]),
  1725. array([[2941.47638606, 5764.33738063],
  1726. [2871.16761943, 5950.15340673]]),
  1727. array([[3021.82926221, 5819.57998298],
  1728. [2976.63076938, 5995.35189956]]),
  1729. array([[3107.20419312, 5834.64614726],
  1730. [3067.02775505, 6015.4401186 ]]),
  1731. array([[3160.09484464, 5621.07619808],
  1732. [3199.60447152, 6177.25017653]]),
  1733. array([[3287.99816446, 5784.42559967],
  1734. [3313.10843826, 6045.57244715]]),
  1735. array([[3368.35104061, 5754.29327111],
  1736. [3413.54953344, 6040.55039239]]),
  1737. array([[3448.70391676, 5683.98450448],
  1738. [3508.96857387, 6025.48422812]]),
  1739. array([[3554.16706671, 5633.76395689],
  1740. [3584.29939526, 6025.48422812]]),
  1741. array([[3644.56405238, 5608.65368309],
  1742. [3644.56405238, 6050.59450191]]),
  1743. array([[3739.9830928 , 5603.63162833],
  1744. [3714.87281901, 6065.66066619]]),
  1745. array([[3875.57857131, 5508.2125879 ],
  1746. [3694.78459997, 6402.13833507]]),
  1747. array([[3940.86528318, 5704.07272352],
  1748. [3815.31391419, 6171.12381614]]),
  1749. array([[4016.19610457, 5874.82258534],
  1750. [3880.60062606, 6201.25614469]]),
  1751. array([[4071.43870692, 6015.4401186 ],
  1752. [3986.06377601, 6221.34436373]]),
  1753. array([[4176.90185687, 6050.59450191],
  1754. [4101.57103548, 6251.47669229]]),
  1755. array([[4262.27678778, 6075.70477571],
  1756. [4247.2106235 , 6286.6310756 ]]),
  1757. array([[4367.73993772, 6070.68272095],
  1758. [4357.6958282 , 6281.60902084]]),
  1759. array([[4473.20308767, 6080.72683047],
  1760. [4473.20308767, 6286.6310756 ]]),
  1761. array([[4588.71034713, 6095.79299475],
  1762. [4603.77651141, 6271.56491132]]),
  1763. array([[4689.15144232, 6085.74888523],
  1764. [4734.34993516, 6261.52080181]]),
  1765. array([[4809.68075655, 6080.72683047],
  1766. [4859.90130414, 6246.45463753]]),
  1767. array([[4920.16596125, 6050.59450191],
  1768. [4985.45267312, 6226.36641849]]),
  1769. array([[5030.65116596, 6010.41806384],
  1770. [5095.93787783, 6176.1458709 ]]),
  1771. array([[5025.6291112 , 5849.71231154],
  1772. [5382.19499911, 6361.96189699]]),
  1773. array([[5181.31280874, 5904.95491389],
  1774. [5296.8200682 , 6040.55039239]]),
  1775. array([[5256.64363013, 5819.57998298],
  1776. [5402.28321815, 5955.17546149]]),
  1777. array([[5342.01856104, 5754.29327111],
  1778. [5497.70225858, 5894.91080437]]),
  1779. array([[5407.30527291, 5658.87423068],
  1780. [5578.05513473, 5814.55792822]]),
  1781. array([[5472.59198478, 5593.58751881],
  1782. [5653.38595612, 5744.24916159]]),
  1783. array([[5532.85664189, 5493.14642362],
  1784. [5723.69472275, 5663.89628544]]),
  1785. array([[5593.12129901, 5422.83765699],
  1786. [5778.9373251 , 5553.41108074]]),
  1787. array([[5638.31979184, 5342.48478084],
  1788. [5834.17992746, 5457.99204031]]),
  1789. array([[5683.51828467, 5277.19806897],
  1790. [5884.40047505, 5362.57299988]]),
  1791. array([[5683.51828467, 5211.9113571 ],
  1792. [5909.51074885, 5272.17601421]]),
  1793. array([[5753.82705131, 5096.40409764],
  1794. [5934.62102264, 5211.9113571 ]]),
  1795. array([[5799.02554414, 5021.07327624],
  1796. [6040.08417259, 5161.69080951]]),
  1797. array([[5854.26814649, 4990.94094769],
  1798. [6100.3488297 , 5066.27176908]]),
  1799. array([[5839.20198221, 4925.65423582],
  1800. [6110.39293922, 4945.74245485]]),
  1801. array([[5829.1578727 , 4830.23519539],
  1802. [6100.3488297 , 4835.25725015]]),
  1803. array([[5788.98143462, 4734.81615496],
  1804. [6070.21650115, 4724.77204544]]),
  1805. array([[5753.82705131, 4639.39711453],
  1806. [6055.15033687, 4614.28684074]]),
  1807. array([[5748.80499655, 4554.02218362],
  1808. [6050.12828211, 4513.84574555]]),
  1809. array([[5748.80499655, 4493.75752651],
  1810. [5994.88567975, 4453.58108844]]),
  1811. array([[5723.69472275, 4438.51492416],
  1812. [5954.70924168, 4398.33848608]]),
  1813. array([[5673.47417516, 4328.02971945],
  1814. [5944.66513216, 4373.22821229]]),
  1815. array([[5743.78294179, 4217.54451475],
  1816. [5974.79746072, 4378.25026705]]),
  1817. array([[5839.20198221, 4172.34602191],
  1818. [6050.12828211, 4333.05177421]]),
  1819. array([[5904.48869409, 4142.21369336],
  1820. [6115.41499398, 4267.76506234]]),
  1821. array([[5929.59896788, 4076.92698149],
  1822. [6150.5693773 , 4147.23574812]]),
  1823. array([[5814.09170842, 3996.57410534],
  1824. [6426.78238906, 4102.03725528]]),
  1825. array([[5914.53280361, 3906.17711967],
  1826. [6245.98841772, 3971.46383154]]),
  1827. array([[5959.73129644, 3845.91246255],
  1828. [6195.76787013, 3835.86835304]]),
  1829. array([[5929.59896788, 3775.60369592],
  1830. [6185.72376061, 3730.40520309]]),
  1831. array([[5924.57691312, 3695.25081977],
  1832. [6175.67965109, 3619.91999838]]),
  1833. array([[5899.46663933, 3599.83177935],
  1834. [6150.5693773 , 3514.45684844]]),
  1835. array([[5859.29020125, 3539.56712223],
  1836. [6085.28266542, 3393.92753421]]),
  1837. array([[5809.06965366, 3474.28041036],
  1838. [6019.99595355, 3293.48643903]]),
  1839. array([[5723.69472275, 3429.08191753],
  1840. [5894.44458457, 3238.24383667]]),
  1841. array([[5653.38595612, 3383.88342469],
  1842. [5814.09170842, 3162.91301528]]),
  1843. array([[5583.07718949, 3353.75109614],
  1844. [5713.65061323, 3097.62630341]]),
  1845. array([[5472.59198478, 3373.83931518],
  1846. [5743.78294179, 2831.45740116]]),
  1847. array([[5412.32732767, 3308.5526033 ],
  1848. [5482.6360943 , 3042.38370106]]),
  1849. array([[5336.99650628, 3278.42027475],
  1850. [5347.0406158 , 3027.31753678]]),
  1851. array([[5231.53335633, 3303.53054854],
  1852. [5211.4451373 , 3047.40575582]]),
  1853. array([[5141.13637066, 3328.64082234],
  1854. [5085.89376831, 3077.53808437]]),
  1855. array([[5085.89376831, 3403.97164373],
  1856. [4925.18801601, 2891.72205828]]),
  1857. array([[5000.5188374 , 3393.92753421],
  1858. [4895.05568746, 3177.97917956]]),
  1859. array([[4890.0336327 , 3439.12602705],
  1860. [4809.68075655, 3203.08945336]]),
  1861. array([[4794.61459227, 3474.28041036],
  1862. [4724.30582564, 3203.08945336]]),
  1863. array([[4659.01911377, 3429.08191753],
  1864. [4583.68829238, 3002.20726298]]),
  1865. array([[4653.99705901, 3519.4789032 ],
  1866. [4176.90185687, 3243.26589143]]),
  1867. array([[4598.75445665, 3589.78766983],
  1868. [4322.54144489, 3459.21424608]]),
  1869. array([[4578.66623762, 3700.27287453],
  1870. [4297.43117109, 3579.74356031]]),
  1871. array([[4563.60007334, 3800.71396972],
  1872. [4257.25473302, 3710.31698405]]),
  1873. array([[4568.6221281 , 3916.22122919],
  1874. [4237.16651398, 3820.80218876]]),
  1875. array([[4523.42363526, 4041.77259817],
  1876. [4202.01213066, 3931.28739346]]),
  1877. array([[4463.15897815, 4147.23574812],
  1878. [4186.94596639, 4051.81670769]]),
  1879. array([[4538.48979954, 4227.58862427],
  1880. [4051.35048788, 4177.36807667]]),
  1881. array([[4443.07075911, 4302.91944566],
  1882. [4242.18856874, 4328.02971945]]),
  1883. array([[4483.24719719, 4418.42670512],
  1884. [4297.43117109, 4458.6031432 ]]),
  1885. array([[4538.48979954, 4498.77958127],
  1886. [4372.76199248, 4589.17656694]]),
  1887. array([[4804.65870179, 4343.09588373],
  1888. [4407.9163758 , 4790.05875731]]),
  1889. array([[4734.34993516, 4564.06629314],
  1890. [4563.60007334, 4800.10286683]]),
  1891. array([[4824.74692082, 4584.15451218],
  1892. [4679.1073328 , 4860.36752395]]),
  1893. array([[4925.18801601, 4649.44122405],
  1894. [4769.50431847, 4855.34546919]]),
  1895. array([[5020.60705644, 4800.10286683],
  1896. [4824.74692082, 4905.56601678]]),
  1897. array([[5045.71733024, 4940.72040009],
  1898. [4854.87924938, 4980.89683817]]),
  1899. array([[5090.91582307, 5071.29382384],
  1900. [4890.0336327 , 5086.35998812]]),
  1901. array([[4754.43815419, 5176.75697378],
  1902. [5231.53335633, 5302.30834277]]),
  1903. array([[4854.87924938, 5277.19806897],
  1904. [5050.739385 , 5427.85971175]]),
  1905. array([[4814.70281131, 5332.44067132],
  1906. [4925.18801601, 5503.19053314]]),
  1907. array([[4719.28377088, 5362.57299988],
  1908. [4759.46020895, 5563.45519026]]),
  1909. array([[4623.86473045, 5372.6171094 ],
  1910. [4623.86473045, 5578.52135453]]),
  1911. array([[4543.5118543 , 5347.5068356 ],
  1912. [4458.13692339, 5573.49929977]]),
  1913. array([[4508.35747098, 5302.30834277],
  1914. [4307.47528061, 5468.03614983]]),
  1915. array([[4528.44569002, 5161.69080951],
  1916. [4091.52692596, 5412.79354747]]),
  1917. array([[4438.04870435, 5091.38204288],
  1918. [4222.1003497 , 5231.99957614]]),
  1919. array([[4377.78404724, 4995.96300245],
  1920. [4171.87980211, 5181.77902854]]),
  1921. array([[4297.43117109, 4915.6101263 ],
  1922. [4076.46076168, 5161.69080951]]),
  1923. array([[4222.1003497 , 4870.41163346],
  1924. [4011.17404981, 5086.35998812]]),
  1925. array([[4156.81363783, 4805.12492159],
  1926. [3930.82117366, 5036.13944052]]),
  1927. array([[4091.52692596, 4719.74999068],
  1928. [3945.88733794, 4870.41163346]]),
  1929. array([[4016.19610457, 4649.44122405],
  1930. [3880.60062606, 4795.08081207]]),
  1931. array([[3965.97555697, 4589.17656694],
  1932. [3800.24774992, 4744.86026448]]),
  1933. array([[3890.64473558, 4468.64725272],
  1934. [3503.94651911, 4800.10286683]]),
  1935. array([[3885.62268082, 4433.4928694 ],
  1936. [3659.63021665, 4483.71341699]]),
  1937. array([[3895.66679034, 4287.85328138],
  1938. [3669.67432617, 4398.33848608]]),
  1939. array([[3770.11542136, 4172.34602191],
  1940. [3624.47583334, 4323.00766469]]),
  1941. array([[3760.07131184, 3996.57410534],
  1942. [3413.54953344, 4448.55903368]]),
  1943. array([[3599.36555954, 4031.72848865],
  1944. [3448.70391676, 4202.47835047]]),
  1945. array([[3508.96857387, 3971.46383154],
  1946. [3363.32898585, 4142.21369336]]),
  1947. array([[3463.77008104, 3830.84629828],
  1948. [3132.31446692, 4262.74300758]]),
  1949. array([[3363.32898585, 3845.91246255],
  1950. [3252.84378115, 3966.44177678]]),
  1951. array([[3313.10843826, 3765.5595864 ],
  1952. [3207.64528831, 3891.11095539]]),
  1953. array([[3237.77761687, 3695.25081977],
  1954. [3122.2703574 , 3850.93451731]]),
  1955. array([[3187.55706927, 3619.91999838],
  1956. [2896.27789323, 3981.50794106]]),
  1957. array([[3077.07186457, 3564.67739603],
  1958. [2946.49844082, 3730.40520309]]),
  1959. array([[2966.58665986, 3489.34657464],
  1960. [2871.16761943, 3690.22876501]]),
  1961. array([[2846.05734564, 3474.28041036],
  1962. [2775.74857901, 3665.11849122]]),
  1963. array([[2820.94707184, 3419.03780801],
  1964. [2574.86638863, 3845.91246255]]),
  1965. array([[2735.57214093, 3373.83931518],
  1966. [2579.88844339, 3584.76561507]]),
  1967. array([[2635.13104574, 3313.57465806],
  1968. [2544.73406008, 3534.54506747]]),
  1969. array([[2519.62378628, 3273.39821999],
  1970. [2469.40323869, 3529.52301272]]),
  1971. array([[2444.29296489, 3248.28794619],
  1972. [2379.00625302, 3529.52301272]]),
  1973. array([[2389.05036254, 3238.24383667],
  1974. [2173.10200788, 3755.51547689]]),
  1975. array([[2298.65337687, 3233.22178191],
  1976. [2188.16817216, 3424.05986277]]),
  1977. array([[2198.21228168, 3177.97917956],
  1978. [2102.79324125, 3363.79520566]]),
  1979. array([[2107.81529601, 3112.69246769],
  1980. [2007.37420082, 3298.50849378]]),
  1981. array([[2022.4403651 , 3067.49397485],
  1982. [1921.99926992, 3248.28794619]]),
  1983. array([[1921.99926992, 2987.1410987 ],
  1984. [1816.53611997, 3172.9571248 ]]),
  1985. array([[1831.60228425, 2916.83233207],
  1986. [1726.1391343 , 3107.67041293]]),
  1987. array([[1751.2494081 , 2871.63383924],
  1988. [1645.78625815, 3077.53808437]]),
  1989. array([[1650.80831291, 2821.41329165],
  1990. [1570.45543676, 3052.42781058]]),
  1991. array([[1575.47749152, 2771.19274405],
  1992. [1475.03639633, 3017.27342726]]),
  1993. array([[1477.18419773, 2724.9527946 ],
  1994. [1384.63941066, 2957.00877015]]),
  1995. array([[1330.59769618, 2906.03023769],
  1996. [1336.34618644, 2653.09666638]]),
  1997. array([[1267.36430335, 2888.78476692],
  1998. [1218.50213617, 2581.24053817]]),
  1999. array([[1224.25062643, 2885.91052179],
  2000. [1043.17318333, 2503.6359197 ]]),
  2001. array([[1195.50817514, 2940.52117923],
  2002. [ 925.32913306, 2558.24657714]]),
  2003. array([[1115.02931154, 2992.25759154],
  2004. [ 859.22149511, 2635.85119561]]),
  2005. array([[1020.1792223 , 3009.50306232],
  2006. [ 798.86234741, 2693.33609818]]),
  2007. array([[1000.77743454, 3092.91696153],
  2008. [ 515.02556184, 2548.8748641 ]]),
  2009. array([[ 890.83819152, 3041.11975873],
  2010. [ 672.39556176, 2860.04231563]]),
  2011. array([[ 847.7245146 , 3055.49098437],
  2012. [ 681.01829714, 2975.01212077]]),
  2013. array([[ 795.98810228, 3078.4849454 ],
  2014. [ 390.11793743, 3012.42093691]])])
  2015. # %% [markdown]
  2016. # # Subdivide ventricular zone and quantify gene expression
  2017. # %%
  2018. #Plot subdivision lines on ventricular zone outline
  2019. plt.figure(figsize=(10,10))
  2020. outer = pol_970_new[:289,:]
  2021. inner = pol_970_new[289:,:]
  2022. plt.scatter(inner[:,0], inner[:,1], s=8)
  2023. plt.scatter(outer[:,0], outer[:,1], s=8)
  2024. for ll in lines_970:
  2025. plt.plot(ll[:,0], ll[:,1], c='k')
  2026. plt.gca().set_aspect('equal')
  2027. # %%
  2028. #Make the inner polygon more dens
  2029. inner_dense = []
  2030. for ii in sliding_window_view(inner, [2,2]):
  2031. ii = ii[0]
  2032. inner_dense.append(ii[0])
  2033. mid = np.array(middle(ii[:,0], ii[:,1]))
  2034. inner_dense.append(mid)
  2035. inner_dense = np.stack(inner_dense)
  2036. plt.figure()
  2037. plt.scatter(inner_dense[:,0], inner_dense[:,1], s=1)
  2038. plt.scatter(inner[:,0], inner[:,1], s=1)
  2039. # %%
  2040. #Make a Shapely polygon out of `inner_dense`
  2041. pol = Polygon(outer, [inner_dense])
  2042. pol.exterior
  2043. # %%
  2044. #Subdivide polygon
  2045. #Subdivision lines to use
  2046. lines = lines_970
  2047. #Make polygons that subdivide the brain
  2048. ls_list = [LineString(ll) for ll in lines]
  2049. # make a complex geometry
  2050. input_p = pol
  2051. #make list of lines as Shapely LineString
  2052. ls_list = [LineString(ll) for ll in lines]
  2053. # and a complex intersecting line
  2054. input_l = MultiLineString(ls_list)
  2055. # union the exterior lines of the polygon with the dividing linestring
  2056. unioned = input_p.boundary.union(input_l)
  2057. # use polygonize geos operator and filter out poygons ouside of origina input polygon
  2058. keep_polys = [poly for poly in polygonize(unioned) if poly.representative_point().within(input_p)]
  2059. # remaining polygons are the split polys of original shape
  2060. mp = MultiPolygon(keep_polys)
  2061. plt.figure(figsize=(6,6))
  2062. coord_dict = {}
  2063. for i, p in enumerate(mp.geoms):
  2064. xy = p.exterior.coords.xy
  2065. coord_dict[i] = np.stack(xy, axis=1)
  2066. plt.plot(xy[0], xy[1])
  2067. def PolyArea(x,y):
  2068. return 0.5*np.abs(np.dot(x,np.roll(y,1))-np.dot(y,np.roll(x,1)))
  2069. #Area in um2
  2070. areas = []
  2071. for i in range(len(coord_dict)):
  2072. xy = coord_dict[i]
  2073. areas.append(PolyArea(xy[:,0], xy[:,1]))
  2074. plt.gca().set_aspect('equal')
  2075. # %%
  2076. #Count genes in polygons
  2077. df = pd.DataFrame(data=np.zeros((d970.unique_genes.shape[0], len(coord_dict))), index=d970.unique_genes)
  2078. df_gene = pd.DataFrame(data=d970.df.g, columns=['gene'])
  2079. points = d970.df.loc[:, ['x', 'y']].compute().to_numpy()
  2080. for l, filt in inside_simple_polygons(coord_dict, points):
  2081. df.loc[d970.unique_genes, l] = df_gene[filt].groupby('gene').size()
  2082. del points
  2083. df = df.fillna(0)
  2084. df_raw = df.copy()
  2085. #Correct for area in mm2
  2086. df = df / (np.array(areas) / 1e6)
  2087. # %%
  2088. #Plot gene count example to inspect results
  2089. fig, ax = plt.subplots(figsize=(6,6))
  2090. g = 'FGF17'
  2091. col = df.loc[g, :]
  2092. col = col / col.max()
  2093. col = plt.cm.viridis(col)
  2094. for i in range(len(coord_dict)):
  2095. xy = coord_dict[i]
  2096. p = mplPolygon(xy, facecolor=col[i])
  2097. ax.add_patch(p)
  2098. plt.xlim(0, 7000)
  2099. plt.ylim(2000, 7000)
  2100. plt.title(g)
  2101. plt.gca().set_aspect('equal')
  2102. # %%
  2103. #Plot gene count example to inspect results
  2104. fig, ax = plt.subplots(figsize=(6,6))
  2105. g = 'WNT1'
  2106. col = df.loc[g, :]
  2107. col = col / col.max()
  2108. col = plt.cm.inferno(col)
  2109. p = mplPolygon(outer, linewidth=6, facecolor='silver', ec='silver')
  2110. ax.add_patch(p )
  2111. for i in range(len(coord_dict)):
  2112. xy = coord_dict[i]
  2113. p = mplPolygon(xy, facecolor=col[i])
  2114. ax.add_patch(p)
  2115. plt.xlim(0, 7000)
  2116. plt.ylim(2000, 7000)
  2117. plt.title(g)
  2118. plt.gca().set_aspect('equal')
  2119. # %%
  2120. selected_genes = ['SIX6', 'OLIG3', 'FOXG1', 'RSPO3', 'SIX3','FEZF2', 'EMX2', 'EN1', 'EN2', 'PAX8', 'FGF17', 'PAX5']
  2121. fig, axes = plt.subplots(ncols=6, nrows=2, figsize=(14,5))
  2122. for i, g in enumerate(selected_genes):
  2123. ax = axes[int(i/6), i%6]
  2124. col = df.loc[g, :]
  2125. col = col / col.max() #(col.max() + col.max() * 0.2)
  2126. col = plt.cm.inferno(col)
  2127. #Add background
  2128. p = mplPolygon(outer, linewidth=6, facecolor='silver', ec='silver')
  2129. ax.add_patch(p )
  2130. for i in range(len(coord_dict)):
  2131. xy = coord_dict[i]
  2132. p = mplPolygon(xy, facecolor=col[i])
  2133. ax.add_patch(p)
  2134. ax.set_xlim(500, 6300)
  2135. ax.set_ylim(2500, 6300)
  2136. ax.set_aspect('equal')
  2137. ax.set_axis_off()
  2138. ax.set_title(g, fontsize=14)
  2139. ax.invert_xaxis()
  2140. plt.tight_layout()
  2141. plt.savefig('results/examples_AP_patterning.pdf')
  2142. # %%
  2143. a = np.array([[0,1]])
  2144. plt.figure(figsize=(0.6, 4))
  2145. img = plt.imshow(a, cmap="inferno")
  2146. plt.gca().set_visible(False)
  2147. cax = plt.axes([0.1, 0.2, 0.8, 0.6])
  2148. plt.colorbar(orientation="vertical", cax=cax)
  2149. plt.axis('off')
  2150. plt.savefig("results/colorbar_inferno.pdf")
  2151. # %%
  2152. #Find the roll to have the start of the polygons somwhere else
  2153. fig, ax = plt.subplots(figsize=(6,6))
  2154. col = np.roll(df.columns, 77)
  2155. col = col / col.max()
  2156. col = plt.cm.viridis(col)
  2157. for i in range(len(coord_dict)):
  2158. xy = coord_dict[i]
  2159. p = mplPolygon(xy, facecolor=col[i])
  2160. ax.add_patch(p)
  2161. plt.xlim(0, 7000)
  2162. plt.ylim(2000, 7000)
  2163. plt.gca().set_aspect('equal')
  2164. # %%
  2165. #Plot the new ordering numbers
  2166. plt.figure(figsize=(10,10))
  2167. for i, ll in enumerate(lines):
  2168. plt.plot(ll[:,0], ll[:,1], c='gray')
  2169. x, y = ll[1]
  2170. plt.text(x, y, i)
  2171. plt.gca().set_aspect('equal')
  2172. # %%
  2173. border_col = ['#548F80', '#D648F2', '#61D23E', '#53B039', '#FFE41B', '#C3313C', '#DF4927', '#E27A3A', '#804344', '#96623E', '#BB6C54', '#DBD06C',
  2174. '#63AA54', '#9F49B5', '#AE5ACF', '#C274D8', '#6E38C5', '#7751C6', '#4784C6','#5D92C8','#4FAB95', '#548F80','#548F80']
  2175. # %%
  2176. #Plot the colors of the polygons acording to the Allen brain atlas prosomeric model
  2177. fig, ax = plt.subplots(figsize=(6,6))
  2178. col_order = np.roll(df.columns, -77)
  2179. col = np.zeros(df.shape[1])
  2180. borders = [0, 36, 43, 46, 60, 78, 93, 98, 102, 103, 110, 114, 121, 128, 133, 137, 141, 144, 148, 152, 157, 174, 180] #177,
  2181. for i, view in enumerate(sliding_window_view(borders, 2)):
  2182. col[view[0] : view[1]] = i/len(borders)
  2183. elin_polygon_colors = {'ROI_Pall': '#C3313C', 'ROI_Pall_VZ': '#C3313C','ROI_Pall_MZ': '#C74150', 'ROI_AM_CP': '#DF4927', 'ROI_AM_CP_VZ': '#DF4927',
  2184. 'ROI_AM_CP_MZ': '#FD6843',
  2185. 'ROI_SPall': '#E27A3A','ROI_SPall_VZ': '#E27A3A', 'ROI_SPall_SVZ': '#E69D68','ROI_SPall_MZ': '#F2B880',
  2186. 'ROI_THy': '#96623E','ROI_THy_VZ': '#96623E','ROI_THy_SVZ': '#A97751', 'ROI_THy_MZ': '#B2845B', 'ROI_optic_recess': '#9C5223','ROI_lamina_terminalis': '#804344',
  2187. 'ROI_PHy': '#BB6C54','ROI_PHy_VZ': '#BB6C54','ROI_PHy_SVZ': '#C27D6A','ROI_PHy_MZ': '#D78A74',
  2188. 'ROI_D_dorsal': '#FFE41B','ROI_D_dorsal_VZ': '#FFE41B','ROI_D_dorsal_MZ': '#FCF2B7','ROI_D_ventral': '#DBD06C','ROI_D_ventral_VZ': '#DBD06C',
  2189. 'ROI_D_ventral_MZ': '#F1E177',
  2190. 'ROI_MTt': '#53B039','ROI_MTg': '#63AA54','ROI_m2': '#61D23E','ROI_isthmus': '#D648F2',
  2191. 'ROI_r1': '#9F49B5','ROI_r1_VZ': '#9F49B5','ROI_r1_MZ': '#C25BDC','ROI_r1-r2': '#AE5ACF','ROI_r1-r2_VZ': '#AE5ACF','ROI_r1-r2_SVZ': '#C75BDE',
  2192. 'ROI_r1-r2_MZ': '#DB7CFA',
  2193. 'ROI_r2_VZ': '#C274D8','ROI_r2_SVZ': '#D27EEC','ROI_r2_MZ': '#E5A1F9','ROI_r3_VZ': '#6E38C5','ROI_r3_SVZ': '#7C41DE','ROI_r3_MZ': '#9B61FA',
  2194. 'ROI_r4_VZ': '#7751C6','ROI_r4_SVZ': '#875BE0','ROI_r4_MZ': '#A57BFF','ROI_r5_VZ': '#4784C6','ROI_r5_SVZ': '#4F94E0','ROI_r5_MZ': '#7EB8F3',
  2195. 'ROI_r6_VZ': '#5D92C8','ROI_r6_SVZ': '#6AA4E1','ROI_r6_MZ': '#94C7F6','ROI_r7_VZ': '#4FAB95','ROI_r7_SVZ': '#59BFA7','ROI_r7_MZ': '#8CE0D0',
  2196. 'ROI_r7_roof_plate': '#548F80','ROI_H_roof_plate': '#548F80'
  2197. }
  2198. border_col = ['#548F80', '#D648F2', '#61D23E', '#53B039', '#FFE41B', '#C3313C', '#DF4927', '#E27A3A', '#804344', '#96623E', '#BB6C54', '#DBD06C',
  2199. '#63AA54', '#9F49B5', '#AE5ACF', '#C274D8', '#6E38C5', '#7751C6', '#4784C6','#5D92C8','#4FAB95', '#548F80'] ##548F80',
  2200. border_col_arange = np.zeros(df.shape[1], dtype='object')
  2201. for i, view in enumerate(sliding_window_view(borders, 2, )):
  2202. border_col_arange[view[0] : view[1]] = border_col[i]
  2203. for j,i in enumerate(col_order):
  2204. xy = coord_dict[i]
  2205. p = mplPolygon(xy, facecolor=border_col_arange[j])
  2206. ax.add_patch(p)
  2207. plt.xlim(0, 7000)
  2208. plt.ylim(2000, 7000)
  2209. plt.gca().set_aspect('equal')
  2210. plt.axis('off')
  2211. #plt.savefig('results/ABA_colors.pdf')
  2212. # %% [markdown]
  2213. # # Anterior - posterior patterning
  2214. # %%
  2215. #Split prosomers
  2216. n_anatomical_regions = len(border_col)
  2217. ref_spacing = np.array([36, 7, 3, 14, 18, 15, 5, 4, 1, 7, 4, 7, 7, 5, 4, 4, 3, 4, 4, 5, 17, 6]) #3
  2218. diff = np.ediff1d(borders)
  2219. x = []
  2220. x_cont = []
  2221. gap = 0
  2222. stop = 0
  2223. for r, d in zip(ref_spacing, diff):
  2224. if d == 1:
  2225. d=2
  2226. start = stop + gap
  2227. stop = start + r
  2228. xi = np.linspace(start, stop, d)
  2229. x.append(xi)
  2230. x_cont.append(xi[:-1])
  2231. gap = 0.7
  2232. # %%
  2233. #Plot patterning histogram of relevant genes
  2234. plt.figure(figsize=(12, 12))
  2235. selected = ['ARX', 'ASCL1', 'BARHL1', 'BMP7', 'BOC', 'CALM1', 'CLU', 'CRABP1', 'DBX1', 'DCC', 'DLK1', 'DNAJB1', 'EFNA5', 'ELN', 'EMX2', 'EN1', 'EN2',
  2236. 'ENC1', 'FABP7', 'FEZF1', 'FEZF2', 'FGF8', 'FGF17', 'FGFBP3', 'FOXA2', 'FOXG1', 'FOXP4', 'FRZB', 'FST', 'GLI3', 'HES5', 'ID1', 'IGFBP5',
  2237. 'ISL1', 'LAMA2', 'LAMP5', 'LHX2', 'LMX1A', 'LMX1B', 'MEIS2', 'MSX1','NEFL', 'NKX2-1', 'NKX2-2', 'NR2E1', 'NR2F2', 'NTN1', 'OLIG2', 'OLIG3',
  2238. 'OTX2', 'PAX2', 'PAX3', 'PAX5', 'PAX6', 'PAX8', 'PHOX2B', 'PTN', 'ROBO3', 'RSPO2', 'RSPO3', 'SFRP1', 'SFRP2', 'SHH', 'SIX3', 'SIX6', 'SLIT2',
  2239. 'SOX2', 'SOX3', 'SOX9', 'SPON1', 'SULF1', 'TFAP2A', 'TTYH1', 'WNT1', 'WNT2B', 'ZIC1', 'ZIC2']
  2240. filt = np.isin(df.index, selected)
  2241. ap = df.loc[filt]
  2242. selected_order = ap.index
  2243. ap = np.roll(ap.to_numpy(), -77, axis=1)
  2244. sort = np.argsort(np.argmax(ap, axis=1))
  2245. selected_order = selected_order[sort]
  2246. for y, g in enumerate(selected_order[::-1]):
  2247. data = df.loc[g, col_order].to_numpy()
  2248. data = median_filter(data, footprint=np.ones(2))
  2249. data[data<0] = 0
  2250. data = (data / data.max()) * 0.7
  2251. data2 = data
  2252. data = np.split(data, borders[1:])
  2253. for i, (xi, d) in enumerate(zip(x, data)):
  2254. plt.fill_between(xi, y, y+d, color=border_col[i])
  2255. if len(d) == 1:
  2256. d = np.array([d, d])
  2257. plt.plot(xi, y+d, c='gray', linewidth=1)
  2258. if y % 2 == 1:
  2259. plt.plot([xi[-1]+1, xi[-1]+14], [y+0.25, y+0.25], c='silver', linewidth=1)
  2260. plt.text(xi[-1]+15, y-0.25, g)
  2261. else:
  2262. plt.text(xi[-1]+1, y-0.25, g)
  2263. plt.axis('off');
  2264. #plt.savefig('results/Patterning_970.pdf')
  2265. # %%
  2266. #Plot all genes
  2267. #Note that some genes are lowly expressed but due to normaization to their maximum they look equal to other genes.
  2268. #Always check raw gene expression to see if results are relevant.
  2269. plt.figure(figsize=(12, 12*5))
  2270. selected = d970.unique_genes
  2271. filt = np.isin(df.index, selected)
  2272. ap = df.loc[filt]
  2273. selected_order = ap.index
  2274. ap = np.roll(ap.to_numpy(), -77, axis=1)
  2275. sort = np.argsort(np.argmax(ap, axis=1))
  2276. selected_order = selected_order[sort]
  2277. for y, g in enumerate(selected_order[::-1]):
  2278. data = df.loc[g, col_order].to_numpy()
  2279. data = median_filter(data, footprint=np.ones(2))
  2280. data[data<0] = 0
  2281. #Normalization
  2282. data = (data / data.max()) * 0.7
  2283. data2 = data
  2284. data = np.split(data, borders[1:])
  2285. for i, (xi, d) in enumerate(zip(x, data)):
  2286. plt.fill_between(xi, y, y+d, color=border_col[i])
  2287. if len(d) == 1:
  2288. d = np.array([d, d])
  2289. plt.plot(xi, y+d, c='gray', linewidth=1)
  2290. if y % 2 == 1:
  2291. plt.plot([xi[-1]+1, xi[-1]+14], [y+0.25, y+0.25], c='silver', linewidth=1)
  2292. plt.text(xi[-1]+15, y-0.25, g)
  2293. else:
  2294. plt.text(xi[-1]+1, y-0.25, g)
  2295. plt.axis('off');

Figure2_Spatial_A-P_gene_patterning.ipynb at commit 1f5f002, under BSD-2-Clause · at the source

Overview

Authors: Lisa Hamerlinck1,2, Eva D’haene1,2, Michael B Vaughan1,2, Nore Van Loon1,2,3, María del Rocío Pérez Baca1,2, Sebastian Leimbacher1,2, Michael Kosicki4, Lara Colombo1,2, Lukas Genbrugge1,2, Lies Vantomme1,2, Esperanza Daal1,2, Luiza Lorena Pires Ramos5,6, Daniela Mircheva Avdjieva-Tzavella7, Himanshu Goel8,9, Koen Devriendt10, Albena Jordanova5,6,11, Annelies Dheedene1,2, Axel Visel4,12,13, Björn Menten1,2, Bert Callewaert1,2, Sarah Vergult1,2
13 affiliations
  1. Center for Medical Genetics Ghent, Ghent University Hospital, Ghent, Belgium
  2. Department of Biomolecular Medicine, Ghent University, Ghent, Belgium
  3. Department of Human Structure and Repair, Ghent University, Ghent, Belgium
  4. Environmental Genomics & System Biology Division, Lawrence Berkeley National Laboratory, Berkeley, CA USA
  5. Molecular Neurogenomics Group, VIB Center for Molecular Neurology, VIB, Antwerp, Belgium
  6. Department of Biomedical Sciences, University of Antwerp, Antwerp, Belgium
  7. Department of Clinical Genetics, University Pediatric Hospital, Medical University-Sofia, Sofia, Bulgaria
  8. Hunter Genetics, Newcastle, NSW Australia
  9. Newcastle-School of Medicine and Public Health, Faculty of Health, University of Newcastle, Newcastle, NSW Australia
  10. Center for Human Genetics, University Hospitals Leuven, Leuven, Belgium
  11. Molecular Medicine Center, Department of Medical Chemistry and Biochemistry, Medical University-Sofia, Sofia, Bulgaria
  12. School of Natural Sciences, University of California, Merced, CA USA
  13. US Department of Energy Joint Genome Institute, Berkeley, CA USA
Journal: Nature communications, volume 17, issue 1, article 7197
Dates: received 25 March 2025; accepted 14 May 2026; published online 3 June 2026
Type: Research article · Language: English
License: CC BY-NC-ND
Identifiers: DOI 10.1038/s41467-026-73770-1 · PMID 42236689 · PMCID PMC13396769 · OpenAlex W7163334608
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: human (organism), other condition (population), developmental (subfield)
Methods: Evoked potentials, Statistics, fMRI & imaging
Keywords: Gene regulation, Neurodevelopmental disorders, Disease genetics
MeSH: Forkhead Transcription Factors*, Gene Expression Regulation, Developmental*, Nerve Tissue Proteins*, Animals, Cell Differentiation, Enhancer Elements, Genetic, Humans, Neural Stem Cells, Neurodevelopment, Prosencephalon, Transcription, Genetic (* major topic)
Topic: Genetics and Neurodevelopmental Disorders (Genetics, Biochemistry, Genetics and Molecular Biology), according to OpenAlex
Funding: Fonds Wetenschappelijk Onderzoek (Research Foundation Flanders) (G063423N, 1520518N, G055422N); NHGRI NIH HHS (R01 HG003988); Bijzonder Onderzoeksfonds (Special Research Fund) (BOF.BAF.2024.0263.01, BOF.STG.2019.0103.01, BOF.BAF.2025.0095.01); Wellcome Trust (WT223718/Z/21/Z)
Citations: cited by 1 paper (Europe PMC); 70 references in the paper

Abstract

The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.

Repositories

Its files are read in the Code ↔ Paper reader above, with 1 match between paragraphs and lines of code.

Zenodo 5653535

License: MIT
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: the text, “CUT&RUN analysis”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: pandas (4 files), NumPy (3 files), Matplotlib (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
  • 27 September 2026: the link answers (HTTP 200)
10 files
At the source:

linnarsson-lab/developing-human-brain

License: BSD-2-Clause
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 1f5f0026d0ebe34ca895e2ce09f72cdd230b09f1, 10 September 2026
Languages: Jupyter (7)
Size: 12 files, 7 scripts
Software Heritage: archived
Found in: “Data availability”
Holds: README, license file, 7 notebooks
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: Matplotlib (5 files), NumPy (5 files), SciPy (5 files), pandas (3 files), napari (2 files), scikit-learn (2 files), rpy2 (1 file), Scanpy (1 file), scikit-image (1 file), scVelo (1 file), seaborn (1 file), statannotations (1 file), UMAP (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
7 files

nf-core/cutandrun

License: MIT
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 6e1125d4fee4ea7c8b70ed836bb0e92a89e3305f, 1 February 2024
Languages: Python (8)
Size: 290 files, 8 scripts
Software Heritage: archived
Found in: the Zenodo archive record
Holds: README, license file, environment (pyproject.toml, .devcontainer/devcontainer.json, dev/docker/master_local_module_image/Dockerfile, dev/docker/master_local_module_image/environment.yml), continuous integration, documentation
Not found: CITATION.cff, tests
Tools: pandas (4 files), NumPy (3 files), Matplotlib (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
10 files

The paper's code and data availability statement is in the Data section.

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 21 scripts, each with its path and the digest of its content;
  • 1 match between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

Datasets cited

Code and data availability statement

The paper has a code and data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:

Read it in the paper: doi.org/10.1038/s41467-026-73770-1.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 21 authors, 3 keywords, 11 MeSH terms, 4 funders, 70 references.

Cite

This paper

Hamerlinck, L., D’haene, E., Vaughan, M. B., Van Loon, N., Pérez Baca, M. d. R., Leimbacher, S., Kosicki, M., Colombo, L., Genbrugge, L., Vantomme, L., Daal, E., Ramos, L. L. P., Avdjieva-Tzavella, D. M., Goel, H., Devriendt, K., Jordanova, A., Dheedene, A., Visel, A., Menten, B., . . . Vergult, S. (2026). Non-coding structural variants disrupt FOXG1 transcriptional regulation in early neurodevelopment. Nature communications, 17(1), 7197. https://doi.org/10.1038/s41467-026-73770-1

BibTeX

@article{hamerlinck2026non,
author = {Hamerlinck, Lisa and D’haene, Eva and Vaughan, Michael B and Van Loon, Nore and Pérez Baca, María del Rocío and Leimbacher, Sebastian and Kosicki, Michael and Colombo, Lara and Genbrugge, Lukas and Vantomme, Lies and Daal, Esperanza and Ramos, Luiza Lorena Pires and Avdjieva-Tzavella, Daniela Mircheva and Goel, Himanshu and Devriendt, Koen and Jordanova, Albena and Dheedene, Annelies and Visel, Axel and Menten, Björn and Callewaert, Bert and Vergult, Sarah},
title = {{Non-coding structural variants disrupt FOXG1 transcriptional regulation in early neurodevelopment}},
journal = {Nature communications},
year = {2026},
month = jun,
volume = {17},
number = {1},
pages = {7197},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/s41467-026-73770-1},
url = {https://doi.org/10.1038/s41467-026-73770-1},
pmid = {42236689},
pmcid = {PMC13396769}
}

RIS

TY - JOUR
AU - Hamerlinck, Lisa
AU - D’haene, Eva
AU - Vaughan, Michael B
AU - Van Loon, Nore
AU - Pérez Baca, María del Rocío
AU - Leimbacher, Sebastian
AU - Kosicki, Michael
AU - Colombo, Lara
AU - Genbrugge, Lukas
AU - Vantomme, Lies
AU - Daal, Esperanza
AU - Ramos, Luiza Lorena Pires
AU - Avdjieva-Tzavella, Daniela Mircheva
AU - Goel, Himanshu
AU - Devriendt, Koen
AU - Jordanova, Albena
AU - Dheedene, Annelies
AU - Visel, Axel
AU - Menten, Björn
AU - Callewaert, Bert
AU - Vergult, Sarah
TI - Non-coding structural variants disrupt FOXG1 transcriptional regulation in early neurodevelopment
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/06/03
VL - 17
IS - 1
SP - 7197
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/s41467-026-73770-1
UR - https://doi.org/10.1038/s41467-026-73770-1
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s41467-026-73770-1",
"type": "article-journal",
"title": "Non-coding structural variants disrupt FOXG1 transcriptional regulation in early neurodevelopment",
"container-title": "Nature communications",
"author": [
{
"family": "Hamerlinck",
"given": "Lisa"
},
{
"family": "D’haene",
"given": "Eva"
},
{
"family": "Vaughan",
"given": "Michael B"
},
{
"family": "Van Loon",
"given": "Nore"
},
{
"family": "Pérez Baca",
"given": "María del Rocío"
},
{
"family": "Leimbacher",
"given": "Sebastian"
},
{
"family": "Kosicki",
"given": "Michael"
},
{
"family": "Colombo",
"given": "Lara"
},
{
"family": "Genbrugge",
"given": "Lukas"
},
{
"family": "Vantomme",
"given": "Lies"
},
{
"family": "Daal",
"given": "Esperanza"
},
{
"family": "Ramos",
"given": "Luiza Lorena Pires"
},
{
"family": "Avdjieva-Tzavella",
"given": "Daniela Mircheva"
},
{
"family": "Goel",
"given": "Himanshu"
},
{
"family": "Devriendt",
"given": "Koen"
},
{
"family": "Jordanova",
"given": "Albena"
},
{
"family": "Dheedene",
"given": "Annelies"
},
{
"family": "Visel",
"given": "Axel"
},
{
"family": "Menten",
"given": "Björn"
},
{
"family": "Callewaert",
"given": "Bert"
},
{
"family": "Vergult",
"given": "Sarah"
}
],
"container-title-short": "Nat Commun",
"volume": "17",
"issue": "1",
"page": "7197",
"DOI": "10.1038/s41467-026-73770-1",
"PMID": "42236689",
"PMCID": "PMC13396769",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://doi.org/10.1038/s41467-026-73770-1",
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
3
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1016/j.xcrm.2026.102766 [code]
A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.
Journal: Cell reports. Medicine
In common: scVelo, rpy2, UMAP, 8 other tools, other condition
[2] doi:10.1016/j.crmeth.2026.101342 [code]
Interpretable learning of temporal cellular dynamics from single-cell data.
Journal: Cell reports methods
In common: scVelo, rpy2, UMAP, 7 other tools
[3] doi:10.21203/rs.3.rs-9676637/v1 [code]
A Comprehensive Benchmarking of Spatial Deconvolution and Domain Detection Methods across Diverse Tissues and Spatial Transcriptomic Technologies
Journal: Research Square (preprint)
In common: rpy2, UMAP, Scanpy, 7 other tools
[4] doi:10.1038/s41586-026-10490-y [code]
Lineage and organ signals sequentially build organ intrinsic nervous systems.
Journal: Nature
In common: scVelo, UMAP, Scanpy, 6 other tools, developmental
[5] doi: [code]
Real-time closed-loop feedback system for mouse mesoscale cortical signal and movement control
Journal: eLife
In common: napari, statannotations, scikit-image, 6 other tools
[6] doi:10.1038/s41598-026-52528-1 [code]
Single-cell analysis reveals corticosteroid-associated impairment of tumor-infiltrating NK cells in glioblastoma patients.
Journal: Scientific reports
In common: scVelo, rpy2, Scanpy, 5 other tools, other condition
[7] doi:10.1093/bioinformatics/btag652 [code]
mmVelo: a deep generative model for estimating cell state-dependent dynamics across multiple modalities.
Journal: Bioinformatics (Oxford, England)
In common: scVelo, UMAP, Scanpy, 6 other tools
[8] doi:10.1038/s41586-026-10629-x [code]
Whole-genome duplication shaped cell-type evolution in the vertebrate brain.
Journal: Nature
In common: scVelo, UMAP, Scanpy, 6 other tools
[9] doi:10.64898/2026.03.30.714220 [code]
An integrated single cell and spatial omics atlas of human prenatal development
Journal: bioRxiv (preprint)
In common: scVelo, UMAP, Scanpy, 6 other tools
[10] doi:10.1093/bib/bbag485 [code]
Single-cell-level perturbation-induced and condition-related signal estimation with batch effect removal using NDreamer.
Journal: Briefings in bioinformatics
In common: rpy2, UMAP, Scanpy, 6 other tools

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.