How to add new bundles into pyAFQ(Optic Radiations Example)#

pyAFQ is designed to be customizable and extensible. This example shows how you can customize it to define a new bundle based on a definition of waypoint and endpoint ROIs of your design.

In this case, we add the optic radiations, based on work by Caffara et al. 1, 2. The optic radiations (OR) are the primary projection of visual information from the lateral geniculate nucleus of the thalamus to the primary visual cortex. Studying the optic radiations with dMRI provides a linkage between white matter tissue properties, visual perception and behavior, and physiological responses of the visual cortex to visual stimulation.

We start by importing some of the components that we need for this example and fixing the random seed for reproducibility

import os.path as op
import plotly
import numpy as np
import shutil

from AFQ.api.group import GroupAFQ
import AFQ.api.bundle_dict as abd
import AFQ.data.fetch as afd
from AFQ.definitions.image import ImageFile, RoiImage
import AFQ.utils.streamlines as aus
np.random.seed(1234)

Get dMRI data#

We will analyze one subject from the Healthy Brain Network Processed Open Diffusion Derivatives dataset (HBN-POD2) 3, 4. We’ll use a fetcher to get preprocessed dMRI data for one of the >2,000 subjects in that study. The data gets organized into a BIDS-compatible format in the ~/AFQ_data/HBN folder:

study_dir = afd.fetch_hbn_preproc(["NDARAA948VFH"])[1]

Define custom BundleDict object#

The BundleDict object holds information about “include” and “exclude” ROIs, as well as endpoint ROIS, and whether the bundle crosses the midline. In this case, the ROIs are all defined in the MNI template space that is used as the default template space in pyAFQ, but, in principle, other template spaces could be used.

The ROIs for the case can be downloaded using a custom fetcher which saves the ROIs to a folder and creates a dictionary of paths to the ROIs:

or_rois = afd.read_or_templates()

bundles = abd.OR_bd()
  0%|          | 0/2 [00:00<?, ? MB/s]
100%|██████████| 2/2 [00:00<00:00, 6355.01 MB/s]

  0%|          | 0/1 [00:00<?, ? MB/s]
100%|██████████| 1/1 [00:00<00:00, 3960.63 MB/s]

  0%|          | 0/2 [00:00<?, ? MB/s]
100%|██████████| 2/2 [00:00<00:00, 5983.32 MB/s]

  0%|          | 0/1 [00:00<?, ? MB/s]
100%|██████████| 1/1 [00:00<00:00, 3429.52 MB/s]

  0%|          | 0/1 [00:00<?, ? MB/s]
100%|██████████| 1/1 [00:00<00:00, 5809.29 MB/s]

  0%|          | 0/19 [00:00<?, ? MB/s]
 26%|██▋       | 5/19 [00:00<00:00, 28.66 MB/s]
100%|██████████| 19/19 [00:00<00:00, 72.33 MB/s]

  0%|          | 0/19 [00:00<?, ? MB/s]
 26%|██▋       | 5/19 [00:00<00:00, 28.76 MB/s]
100%|██████████| 19/19 [00:00<00:00, 72.58 MB/s]

  0%|          | 0/1 [00:00<?, ? MB/s]
100%|██████████| 1/1 [00:00<00:00, 7767.23 MB/s]

  0%|          | 0/1 [00:00<?, ? MB/s]
100%|██████████| 1/1 [00:00<00:00, 5983.32 MB/s]

  0%|          | 0/1 [00:00<?, ? MB/s]
100%|██████████| 1/1 [00:00<00:00, 6432.98 MB/s]

  0%|          | 0/19 [00:00<?, ? MB/s]
 21%|██        | 4/19 [00:00<00:00, 23.13 MB/s]
100%|██████████| 19/19 [00:00<00:00, 72.90 MB/s]

  0%|          | 0/19 [00:00<?, ? MB/s]
 21%|██        | 4/19 [00:00<00:00, 23.01 MB/s]
100%|██████████| 19/19 [00:00<00:00, 72.56 MB/s]

  0%|          | 0/1 [00:00<?, ? MB/s]
100%|██████████| 1/1 [00:00<00:00, 4854.52 MB/s]

  0%|          | 0/1 [00:00<?, ? MB/s]
100%|██████████| 1/1 [00:00<00:00, 7332.70 MB/s]

Custom bundle definitions such as the OR, and the standard BundleDict can be combined through addition. To get both the OR and the standard bundles, we would execute the following code:

bundles = bundles + abd.default18_bd()

In this case, we will skip this and generate just the OR.

Define GroupAFQ object#

HBN POD2 have been processed with qsiprep 5. This means that a brain mask has already been computer for them. As you can see in other examples, these data also have a mapping calculated for them, which can also be incorporated into processing. However, in this case, we will let pyAFQ calculate its own SyN-based mapping so that the combine_bundle method can be used below to create a montage visualization.

For tractography, we use CSD-based probabilistic tractography seeding extensively (n_seeds=4 means 81 seeds per voxel!), but only within the ROIs and not throughout the white matter. This is controlled by passing “seed_mask”: RoiImage() in the tracking_params dict. The custom bundles are passed as bundle_info=bundles. The call to my_afq.export_all() initiates the pipeline.

brain_mask_definition = ImageFile(
    suffix="mask",
    filters={'desc': 'brain',
             'space': 'T1w',
             'scope': 'qsiprep'})

my_afq = GroupAFQ(
    bids_path=study_dir,
    preproc_pipeline="qsiprep",
    participant_labels=["NDARAA948VFH"],
    output_dir=op.join(study_dir, "derivatives", "afq_or"),
    brain_mask_definition=brain_mask_definition,
    tracking_params={"n_seeds": 4,
                     "directions": "prob",
                     "odf_model": "CSD",
                     "seed_mask": RoiImage()},
    bundle_info=bundles)

my_afq.export_all()
/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/site-packages/AFQ/tasks/data.py:88: UserWarning:

Pass ['bvecs'] as keyword args. From version 2.0.0 passing these as positional arguments will result in an error.

/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/site-packages/AFQ/models/csd.py:45: UserWarning:

Pass ['bvecs'] as keyword args. From version 2.0.0 passing these as positional arguments will result in an error.

Optimizing level 2 [max iter: 10000]
Optimizing level 1 [max iter: 1000]
Optimizing level 0 [max iter: 100]
Optimizing level 2 [max iter: 10000]
Optimizing level 1 [max iter: 1000]
Optimizing level 0 [max iter: 100]
Optimizing level 2 [max iter: 10000]
Optimizing level 1 [max iter: 1000]
Optimizing level 0 [max iter: 100]

0it [00:00, ?it/s]
30it [00:00, 294.10it/s]
63it [00:00, 312.31it/s]
95it [00:00, 276.23it/s]
124it [00:00, 255.37it/s]
150it [00:00, 250.57it/s]
177it [00:00, 252.92it/s]
204it [00:00, 256.15it/s]
235it [00:00, 265.81it/s]
266it [00:00, 277.02it/s]
294it [00:01, 268.27it/s]
321it [00:01, 260.84it/s]
351it [00:01, 269.92it/s]
379it [00:01, 271.64it/s]
408it [00:01, 275.62it/s]
436it [00:01, 276.08it/s]
465it [00:01, 277.46it/s]
494it [00:01, 277.50it/s]
523it [00:01, 280.20it/s]
552it [00:02, 272.62it/s]
580it [00:02, 255.77it/s]
606it [00:02, 253.05it/s]
632it [00:02, 240.99it/s]
657it [00:02, 242.10it/s]
686it [00:02, 254.57it/s]
722it [00:02, 281.07it/s]
753it [00:02, 288.54it/s]
785it [00:02, 295.65it/s]
815it [00:03, 293.30it/s]
845it [00:03, 258.22it/s]
872it [00:03, 199.59it/s]
896it [00:03, 205.62it/s]
920it [00:03, 212.49it/s]
943it [00:03, 202.73it/s]
970it [00:03, 219.70it/s]
994it [00:03, 223.30it/s]
1018it [00:04, 211.45it/s]
1040it [00:04, 211.71it/s]
1062it [00:04, 173.93it/s]
1087it [00:04, 189.72it/s]
1115it [00:04, 211.25it/s]
1145it [00:04, 234.51it/s]
1171it [00:04, 240.80it/s]
1197it [00:04, 245.81it/s]
1223it [00:04, 244.89it/s]
1250it [00:05, 247.95it/s]
1279it [00:05, 257.95it/s]
1307it [00:05, 263.42it/s]
1336it [00:05, 270.76it/s]
1364it [00:05, 264.67it/s]
1392it [00:05, 265.86it/s]
1419it [00:05, 265.68it/s]
1446it [00:05, 266.57it/s]
1473it [00:05, 266.52it/s]
1500it [00:06, 244.30it/s]
1525it [00:06, 234.20it/s]
1549it [00:06, 232.53it/s]
1576it [00:06, 241.29it/s]
1605it [00:06, 252.65it/s]
1631it [00:06, 254.38it/s]
1662it [00:06, 270.29it/s]
1690it [00:06, 252.56it/s]
1716it [00:07, 161.10it/s]
1737it [00:07, 149.39it/s]
1755it [00:07, 140.91it/s]
1773it [00:07, 148.35it/s]
1794it [00:07, 161.68it/s]
1814it [00:07, 167.50it/s]
1832it [00:07, 142.38it/s]
1857it [00:07, 167.40it/s]
1882it [00:08, 187.72it/s]
1903it [00:08, 189.26it/s]
1924it [00:08, 189.91it/s]
1945it [00:08, 194.57it/s]
1978it [00:08, 231.48it/s]
2002it [00:08, 216.24it/s]
2025it [00:08, 177.01it/s]
2045it [00:09, 139.00it/s]
2063it [00:09, 145.97it/s]
2086it [00:09, 164.76it/s]
2105it [00:09, 169.69it/s]
2126it [00:09, 179.10it/s]
2149it [00:09, 192.49it/s]
2172it [00:09, 200.45it/s]
2193it [00:09, 197.28it/s]
2216it [00:09, 204.03it/s]
2244it [00:09, 223.79it/s]
2267it [00:10, 224.43it/s]
2294it [00:10, 236.84it/s]
2319it [00:10, 240.08it/s]
2344it [00:10, 242.87it/s]
2369it [00:10, 237.89it/s]
2393it [00:10, 234.59it/s]
2417it [00:10, 235.70it/s]
2441it [00:10, 224.22it/s]
2464it [00:10, 212.78it/s]
2486it [00:11, 206.87it/s]
2509it [00:11, 212.91it/s]
2536it [00:11, 228.61it/s]
2563it [00:11, 238.44it/s]
2594it [00:11, 256.77it/s]
2625it [00:11, 270.12it/s]
2653it [00:11, 252.28it/s]
2679it [00:11, 252.82it/s]
2705it [00:11, 247.18it/s]
2730it [00:12, 236.41it/s]
2760it [00:12, 253.61it/s]
2786it [00:12, 252.87it/s]
2816it [00:12, 265.61it/s]
2843it [00:12, 258.54it/s]
2870it [00:12, 260.34it/s]
2897it [00:12, 248.85it/s]
2925it [00:12, 256.44it/s]
2951it [00:12, 255.82it/s]
2977it [00:12, 254.97it/s]
3003it [00:13, 246.11it/s]
3029it [00:13, 247.58it/s]
3054it [00:13, 230.89it/s]
3078it [00:13, 181.80it/s]
3098it [00:13, 155.88it/s]
3116it [00:13, 158.74it/s]
3147it [00:13, 193.24it/s]
3176it [00:14, 213.59it/s]
3203it [00:14, 227.98it/s]
3237it [00:14, 255.24it/s]
3273it [00:14, 283.97it/s]
3306it [00:14, 294.46it/s]
3337it [00:14, 292.37it/s]
3367it [00:14, 155.04it/s]
3390it [00:15, 166.67it/s]
3413it [00:15, 178.70it/s]
3442it [00:15, 202.74it/s]
3467it [00:15, 213.24it/s]
3492it [00:15, 221.34it/s]
3518it [00:15, 230.68it/s]
3546it [00:15, 243.77it/s]
3573it [00:15, 250.81it/s]
3600it [00:15, 248.13it/s]
3628it [00:15, 256.26it/s]
3655it [00:16, 258.02it/s]
3682it [00:16, 246.96it/s]
3709it [00:16, 250.21it/s]
3735it [00:16, 244.96it/s]
3761it [00:16, 245.97it/s]
3786it [00:16, 244.37it/s]
3811it [00:16, 240.72it/s]
3836it [00:16, 239.42it/s]
3860it [00:16, 235.83it/s]
3885it [00:17, 237.87it/s]
3909it [00:17, 237.02it/s]
3935it [00:17, 241.97it/s]
3960it [00:17, 239.87it/s]
3990it [00:17, 257.35it/s]
4021it [00:17, 271.00it/s]
4051it [00:17, 278.03it/s]
4082it [00:17, 287.08it/s]
4111it [00:17, 280.14it/s]
4140it [00:18, 267.63it/s]
4168it [00:18, 270.87it/s]
4197it [00:18, 275.82it/s]
4230it [00:18, 290.17it/s]
4260it [00:18, 285.89it/s]
4289it [00:18, 267.96it/s]
4317it [00:18, 264.97it/s]
4344it [00:18, 263.92it/s]
4371it [00:18, 260.60it/s]
4398it [00:18, 256.41it/s]
4424it [00:19, 254.21it/s]
4453it [00:19, 256.28it/s]
4479it [00:19, 256.42it/s]
4505it [00:19, 237.69it/s]
4530it [00:19, 240.84it/s]
4556it [00:19, 244.58it/s]
4582it [00:19, 246.37it/s]
4609it [00:19, 251.49it/s]
4637it [00:19, 258.95it/s]
4664it [00:20, 259.92it/s]
4694it [00:20, 270.36it/s]
4722it [00:20, 271.74it/s]
4751it [00:20, 277.04it/s]
4783it [00:20, 288.35it/s]
4812it [00:20, 270.96it/s]
4841it [00:20, 267.46it/s]
4868it [00:20, 268.13it/s]
4895it [00:20, 246.99it/s]
4921it [00:21, 226.93it/s]
4945it [00:21, 199.53it/s]
4966it [00:21, 195.05it/s]
4993it [00:21, 213.03it/s]
5020it [00:21, 227.61it/s]
5047it [00:21, 237.90it/s]
5072it [00:21, 240.34it/s]
5097it [00:21, 181.59it/s]
5124it [00:22, 199.86it/s]
5155it [00:22, 225.46it/s]
5191it [00:22, 259.87it/s]
5226it [00:22, 281.48it/s]
5258it [00:22, 289.36it/s]
5289it [00:22, 287.08it/s]
5319it [00:22, 283.58it/s]
5348it [00:22, 255.20it/s]
5375it [00:22, 243.33it/s]
5400it [00:23, 240.97it/s]
5426it [00:23, 244.86it/s]
5455it [00:23, 257.15it/s]
5484it [00:23, 264.96it/s]
5511it [00:23, 262.25it/s]
5539it [00:23, 266.64it/s]
5566it [00:23, 265.35it/s]
5593it [00:23, 262.64it/s]
5620it [00:23, 256.64it/s]
5648it [00:23, 257.93it/s]
5674it [00:24, 247.81it/s]
5699it [00:24, 245.04it/s]
5725it [00:24, 246.77it/s]
5750it [00:24, 241.88it/s]
5777it [00:24, 249.48it/s]
5806it [00:24, 255.65it/s]
5832it [00:24, 254.21it/s]
5858it [00:24, 244.37it/s]
5883it [00:24, 244.33it/s]
5909it [00:25, 246.96it/s]
5939it [00:25, 261.21it/s]
5966it [00:25, 259.28it/s]
5998it [00:25, 275.23it/s]
6030it [00:25, 285.50it/s]
6064it [00:25, 298.61it/s]
6095it [00:25, 300.90it/s]
6126it [00:25, 303.46it/s]
6157it [00:25, 286.99it/s]
6186it [00:26, 235.11it/s]
6212it [00:26, 228.50it/s]
6239it [00:26, 234.56it/s]
6264it [00:26, 231.73it/s]
6288it [00:26, 230.15it/s]
6320it [00:26, 253.21it/s]
6349it [00:26, 263.05it/s]
6383it [00:26, 283.75it/s]
6416it [00:26, 295.80it/s]
6446it [00:27, 289.65it/s]
6480it [00:27, 300.16it/s]
6512it [00:27, 302.55it/s]
6543it [00:27, 286.32it/s]
6578it [00:27, 303.03it/s]
6609it [00:27, 287.60it/s]
6641it [00:27, 296.00it/s]
6671it [00:27, 294.41it/s]
6702it [00:27, 298.61it/s]
6733it [00:27, 283.97it/s]
6763it [00:28, 285.76it/s]
6792it [00:28, 276.28it/s]
6820it [00:28, 260.08it/s]
6847it [00:28, 261.85it/s]
6878it [00:28, 274.98it/s]
6906it [00:28, 263.60it/s]
6933it [00:28, 261.17it/s]
6960it [00:28, 247.24it/s]
6985it [00:28, 241.31it/s]
7010it [00:29, 236.24it/s]
7034it [00:29, 233.01it/s]
7059it [00:29, 236.28it/s]
7086it [00:29, 244.71it/s]
7115it [00:29, 255.86it/s]
7144it [00:29, 264.88it/s]
7171it [00:29, 258.65it/s]
7198it [00:29, 261.90it/s]
7225it [00:29, 257.90it/s]
7255it [00:30, 268.79it/s]
7282it [00:30, 249.51it/s]
7308it [00:30, 250.87it/s]
7334it [00:30, 251.75it/s]
7360it [00:30, 248.86it/s]
7393it [00:30, 267.51it/s]
7422it [00:30, 270.01it/s]
7454it [00:30, 283.11it/s]
7485it [00:30, 289.65it/s]
7520it [00:30, 306.85it/s]
7551it [00:31, 296.22it/s]
7583it [00:31, 301.60it/s]
7614it [00:31, 287.08it/s]
7643it [00:31, 287.17it/s]
7672it [00:31, 285.73it/s]
7701it [00:31, 283.75it/s]
7730it [00:31, 275.09it/s]
7758it [00:31, 210.62it/s]
7782it [00:32, 183.94it/s]
7803it [00:32, 181.41it/s]
7833it [00:32, 206.94it/s]
7857it [00:32, 214.20it/s]
7889it [00:32, 241.17it/s]
7919it [00:32, 257.01it/s]
7946it [00:32, 251.94it/s]
7972it [00:32, 240.60it/s]
7997it [00:33, 221.57it/s]
8020it [00:33, 222.57it/s]
8043it [00:33, 220.31it/s]
8068it [00:33, 227.43it/s]
8092it [00:33, 225.36it/s]
8118it [00:33, 234.04it/s]
8147it [00:33, 249.26it/s]
8177it [00:33, 262.43it/s]
8204it [00:33, 264.01it/s]
8231it [00:33, 259.75it/s]
8258it [00:34, 256.24it/s]
8284it [00:34, 257.17it/s]
8312it [00:34, 263.51it/s]
8340it [00:34, 266.16it/s]
8367it [00:34, 254.40it/s]
8393it [00:34, 249.51it/s]
8419it [00:34, 249.79it/s]
8445it [00:34, 251.59it/s]
8471it [00:34, 253.77it/s]
8497it [00:35, 251.96it/s]
8523it [00:35, 252.81it/s]
8549it [00:35, 246.07it/s]
8578it [00:35, 256.41it/s]
8610it [00:35, 271.51it/s]
8639it [00:35, 271.79it/s]
8672it [00:35, 284.40it/s]
8701it [00:35, 268.98it/s]
8733it [00:35, 282.16it/s]
8762it [00:35, 273.82it/s]
8790it [00:36, 265.83it/s]
8820it [00:36, 273.53it/s]
8849it [00:36, 277.25it/s]
8879it [00:36, 280.40it/s]
8908it [00:36, 234.93it/s]
8933it [00:36, 229.81it/s]
8957it [00:36, 230.20it/s]
8981it [00:36, 228.15it/s]
9005it [00:37, 225.96it/s]
9037it [00:37, 250.68it/s]
9072it [00:37, 276.62it/s]
9101it [00:37, 272.89it/s]
9129it [00:37, 269.61it/s]
9157it [00:37, 264.28it/s]
9184it [00:37, 254.63it/s]
9213it [00:37, 261.43it/s]
9241it [00:37, 265.06it/s]
9269it [00:37, 268.84it/s]
9296it [00:38, 263.59it/s]
9326it [00:38, 272.32it/s]
9354it [00:38, 265.86it/s]
9384it [00:38, 275.48it/s]
9415it [00:38, 283.08it/s]
9444it [00:38, 281.02it/s]
9473it [00:38, 282.66it/s]
9502it [00:38, 274.36it/s]
9530it [00:38, 262.12it/s]
9557it [00:39, 258.00it/s]
9583it [00:39, 251.24it/s]
9609it [00:39, 249.47it/s]
9640it [00:39, 265.43it/s]
9667it [00:39, 260.51it/s]
9694it [00:39, 253.28it/s]
9720it [00:39, 250.64it/s]
9748it [00:39, 256.74it/s]
9776it [00:39, 260.13it/s]
9803it [00:40, 241.64it/s]
9830it [00:40, 247.26it/s]
9857it [00:40, 251.23it/s]
9884it [00:40, 253.26it/s]
9910it [00:40, 252.83it/s]
9942it [00:40, 271.86it/s]
9972it [00:40, 278.95it/s]
10002it [00:40, 281.90it/s]
10033it [00:40, 290.10it/s]
10063it [00:40, 291.06it/s]
10093it [00:41, 291.58it/s]
10124it [00:41, 296.11it/s]
10154it [00:41, 291.78it/s]
10187it [00:41, 301.82it/s]
10219it [00:41, 305.74it/s]
10250it [00:41, 303.20it/s]
10281it [00:41, 263.16it/s]
10309it [00:41, 240.91it/s]
10335it [00:41, 224.54it/s]
10359it [00:42, 214.65it/s]
10383it [00:42, 220.82it/s]
10406it [00:42, 218.95it/s]
10430it [00:42, 224.61it/s]
10453it [00:42, 219.98it/s]
10479it [00:42, 229.42it/s]
10503it [00:42, 216.69it/s]
10530it [00:42, 228.57it/s]
10559it [00:42, 242.07it/s]
10585it [00:43, 246.48it/s]
10610it [00:43, 246.81it/s]
10638it [00:43, 254.97it/s]
10667it [00:43, 262.09it/s]
10695it [00:43, 266.04it/s]
10722it [00:43, 253.60it/s]
10748it [00:43, 251.10it/s]
10778it [00:43, 262.67it/s]
10806it [00:43, 265.81it/s]
10833it [00:44, 263.87it/s]
10860it [00:44, 258.78it/s]
10889it [00:44, 265.44it/s]
10918it [00:44, 271.71it/s]
10946it [00:44, 268.64it/s]
10974it [00:44, 268.74it/s]
11002it [00:44, 269.03it/s]
11034it [00:44, 283.25it/s]
11065it [00:44, 289.79it/s]
11095it [00:44, 287.70it/s]
11124it [00:45, 283.06it/s]
11156it [00:45, 290.06it/s]
11186it [00:45, 287.82it/s]
11215it [00:45, 274.12it/s]
11243it [00:45, 237.38it/s]
11268it [00:45, 211.31it/s]
11291it [00:45, 188.81it/s]
11318it [00:45, 206.99it/s]
11346it [00:46, 224.49it/s]
11374it [00:46, 237.88it/s]
11399it [00:46, 240.37it/s]
11427it [00:46, 250.12it/s]
11456it [00:46, 260.72it/s]
11483it [00:46, 262.70it/s]
11510it [00:46, 253.10it/s]
11536it [00:46, 246.04it/s]
11561it [00:46, 243.63it/s]
11586it [00:47, 243.60it/s]
11611it [00:47, 242.41it/s]
11636it [00:47, 232.73it/s]
11660it [00:47, 221.04it/s]
11683it [00:47, 218.04it/s]
11705it [00:47, 213.38it/s]
11730it [00:47, 220.14it/s]
11756it [00:47, 228.75it/s]
11780it [00:47, 231.63it/s]
11806it [00:47, 238.82it/s]
11831it [00:48, 241.72it/s]
11856it [00:48, 240.83it/s]
11881it [00:48, 239.26it/s]
11905it [00:48, 228.57it/s]
11929it [00:48, 229.05it/s]
11954it [00:48, 232.49it/s]
11978it [00:48, 229.88it/s]
12002it [00:48, 225.21it/s]
12029it [00:48, 237.01it/s]
12053it [00:49, 227.43it/s]
12081it [00:49, 241.38it/s]
12109it [00:49, 250.81it/s]
12139it [00:49, 263.94it/s]
12175it [00:49, 289.73it/s]
12208it [00:49, 300.86it/s]
12240it [00:49, 304.13it/s]
12274it [00:49, 311.98it/s]
12315it [00:49, 340.02it/s]
12350it [00:49, 341.83it/s]
12385it [00:50, 339.34it/s]
12419it [00:50, 336.83it/s]
12453it [00:50, 318.30it/s]
12486it [00:50, 276.18it/s]
12515it [00:50, 262.14it/s]
12542it [00:50, 236.92it/s]
12568it [00:50, 241.51it/s]
12593it [00:50, 243.50it/s]
12620it [00:51, 248.42it/s]
12646it [00:51, 237.68it/s]
12671it [00:51, 238.06it/s]
12696it [00:51, 239.82it/s]
12722it [00:51, 244.34it/s]
12751it [00:51, 255.73it/s]
12777it [00:51, 251.48it/s]
12803it [00:51, 246.15it/s]
12832it [00:51, 258.38it/s]
12860it [00:51, 264.45it/s]
12887it [00:52, 263.17it/s]
12914it [00:52, 261.57it/s]
12941it [00:52, 261.42it/s]
12968it [00:52, 245.91it/s]
12995it [00:52, 252.65it/s]
13022it [00:52, 255.32it/s]
13049it [00:52, 259.28it/s]
13076it [00:52, 254.71it/s]
13104it [00:52, 261.02it/s]
13133it [00:53, 264.75it/s]
13161it [00:53, 268.84it/s]
13190it [00:53, 273.76it/s]
13218it [00:53, 262.03it/s]
13245it [00:53, 259.36it/s]
13272it [00:53, 246.27it/s]
13297it [00:53, 181.52it/s]
13327it [00:53, 207.77it/s]
13357it [00:54, 229.02it/s]
13386it [00:54, 243.47it/s]
13415it [00:54, 254.00it/s]
13443it [00:54, 241.04it/s]
13469it [00:54, 219.77it/s]
13493it [00:54, 192.47it/s]
13514it [00:54, 158.20it/s]
13532it [00:55, 153.18it/s]
13549it [00:55, 150.75it/s]
13565it [00:55, 150.33it/s]
13587it [00:55, 167.36it/s]
13609it [00:55, 175.75it/s]
13631it [00:55, 186.85it/s]
13653it [00:55, 194.89it/s]
13677it [00:55, 207.42it/s]
13704it [00:55, 224.40it/s]
13731it [00:55, 235.77it/s]
13755it [00:56, 236.84it/s]
13780it [00:56, 239.15it/s]
13814it [00:56, 268.05it/s]
13852it [00:56, 299.94it/s]
13888it [00:56, 314.53it/s]
13926it [00:56, 330.39it/s]
13961it [00:56, 334.18it/s]
13995it [00:56, 322.61it/s]
14028it [00:56, 273.79it/s]
14057it [00:57, 254.20it/s]
14084it [00:57, 244.90it/s]
14110it [00:57, 247.35it/s]
14136it [00:57, 232.50it/s]
14161it [00:57, 234.85it/s]
14185it [00:57, 233.93it/s]
14209it [00:57, 230.48it/s]
14233it [00:57, 228.88it/s]
14256it [00:57, 224.24it/s]
14280it [00:58, 226.49it/s]
14304it [00:58, 230.07it/s]
14331it [00:58, 239.28it/s]
14360it [00:58, 251.86it/s]
14386it [00:58, 246.55it/s]
14411it [00:58, 244.36it/s]
14438it [00:58, 251.72it/s]
14466it [00:58, 257.68it/s]
14497it [00:58, 272.54it/s]
14525it [00:58, 270.96it/s]
14556it [00:59, 281.30it/s]
14588it [00:59, 288.48it/s]
14617it [00:59, 281.28it/s]
14646it [00:59, 189.75it/s]
14669it [00:59, 196.41it/s]
14692it [00:59, 168.85it/s]
14712it [00:59, 169.78it/s]
14731it [01:00, 147.57it/s]
14748it [01:00, 132.66it/s]
14763it [01:00, 124.84it/s]
14777it [01:00, 119.45it/s]
14794it [01:00, 127.98it/s]
14816it [01:00, 149.82it/s]
14837it [01:00, 164.19it/s]
14858it [01:01, 175.07it/s]
14889it [01:01, 210.76it/s]
14919it [01:01, 233.48it/s]
14944it [01:01, 234.94it/s]
14969it [01:01, 236.85it/s]
14994it [01:01, 238.30it/s]
15019it [01:01, 236.55it/s]
15043it [01:01, 216.47it/s]
15067it [01:01, 222.84it/s]
15098it [01:01, 246.00it/s]
15138it [01:02, 288.68it/s]
15184it [01:02, 337.77it/s]
15219it [01:02, 298.86it/s]
15251it [01:02, 291.65it/s]
15281it [01:02, 281.15it/s]
15310it [01:02, 267.80it/s]
15338it [01:02, 266.40it/s]
15365it [01:02, 247.92it/s]
15391it [01:03, 245.54it/s]
15416it [01:03, 245.65it/s]
15445it [01:03, 257.15it/s]
15471it [01:03, 257.11it/s]
15498it [01:03, 260.36it/s]
15525it [01:03, 259.51it/s]
15552it [01:03, 261.58it/s]
15581it [01:03, 269.31it/s]
15608it [01:03, 258.57it/s]
15634it [01:04, 133.44it/s]
15658it [01:04, 151.19it/s]
15679it [01:04, 158.62it/s]
15700it [01:04, 163.24it/s]
15720it [01:04, 162.98it/s]
15741it [01:04, 170.25it/s]
15760it [01:05, 158.31it/s]
15779it [01:05, 165.92it/s]
15804it [01:05, 186.74it/s]
15826it [01:05, 195.35it/s]
15848it [01:05, 199.55it/s]
15869it [01:05, 193.26it/s]
15894it [01:05, 208.16it/s]
15917it [01:05, 212.55it/s]
15940it [01:05, 217.12it/s]
15964it [01:05, 223.63it/s]
15989it [01:06, 229.88it/s]
16013it [01:06, 221.67it/s]
16036it [01:06, 223.99it/s]
16059it [01:06, 222.79it/s]
16082it [01:06, 220.66it/s]
16110it [01:06, 236.02it/s]
16134it [01:06, 231.47it/s]
16159it [01:06, 234.51it/s]
16188it [01:06, 250.40it/s]
16214it [01:06, 245.32it/s]
16239it [01:07, 221.58it/s]
16266it [01:07, 232.11it/s]
16290it [01:07, 233.90it/s]
16314it [01:07, 231.97it/s]
16339it [01:07, 236.56it/s]
16363it [01:07, 234.95it/s]
16387it [01:07, 227.64it/s]
16410it [01:07, 218.70it/s]
16433it [01:07, 220.77it/s]
16456it [01:08, 213.67it/s]
16479it [01:08, 218.11it/s]
16504it [01:08, 224.87it/s]
16531it [01:08, 235.45it/s]
16559it [01:08, 247.86it/s]
16584it [01:08, 235.03it/s]
16611it [01:08, 244.41it/s]
16636it [01:08, 183.63it/s]
16661it [01:09, 195.19it/s]
16683it [01:09, 150.14it/s]
16706it [01:09, 163.96it/s]
16733it [01:09, 187.57it/s]
16756it [01:09, 196.52it/s]
16778it [01:09, 202.01it/s]
16800it [01:09, 205.60it/s]
16822it [01:09, 204.46it/s]
16844it [01:10, 198.78it/s]
16868it [01:10, 208.22it/s]
16890it [01:10, 210.92it/s]
16912it [01:10, 212.54it/s]
16935it [01:10, 214.02it/s]
16960it [01:10, 222.33it/s]
16983it [01:10, 217.42it/s]
17011it [01:10, 233.57it/s]
17036it [01:10, 227.09it/s]
17059it [01:10, 221.60it/s]
17084it [01:11, 226.90it/s]
17108it [01:11, 230.19it/s]
17132it [01:11, 210.36it/s]
17157it [01:11, 219.13it/s]
17182it [01:11, 227.09it/s]
17206it [01:11, 225.10it/s]
17229it [01:11, 220.10it/s]
17254it [01:11, 226.69it/s]
17277it [01:11, 219.75it/s]
17300it [01:12, 221.43it/s]
17324it [01:12, 224.59it/s]
17347it [01:12, 225.19it/s]
17373it [01:12, 233.76it/s]
17397it [01:12, 231.01it/s]
17421it [01:12, 230.46it/s]
17448it [01:12, 241.30it/s]
17473it [01:12, 224.06it/s]
17496it [01:12, 208.69it/s]
17518it [01:13, 150.87it/s]
17542it [01:13, 169.21it/s]
17565it [01:13, 182.35it/s]
17586it [01:13, 183.68it/s]
17607it [01:13, 190.26it/s]
17630it [01:13, 197.81it/s]
17655it [01:13, 209.70it/s]
17678it [01:13, 212.48it/s]
17700it [01:14, 207.69it/s]
17722it [01:14, 184.02it/s]
17742it [01:14, 166.03it/s]
17760it [01:14, 161.17it/s]
17784it [01:14, 180.17it/s]
17808it [01:14, 195.61it/s]
17829it [01:14, 196.58it/s]
17852it [01:14, 205.27it/s]
17873it [01:14, 201.08it/s]
17899it [01:15, 216.92it/s]
17922it [01:15, 218.56it/s]
17945it [01:15, 217.61it/s]
17967it [01:15, 211.38it/s]
17989it [01:15, 199.69it/s]
18010it [01:15, 201.76it/s]
18031it [01:15, 201.25it/s]
18055it [01:15, 210.83it/s]
18083it [01:15, 229.39it/s]
18109it [01:16, 237.11it/s]
18137it [01:16, 248.76it/s]
18162it [01:16, 248.39it/s]
18191it [01:16, 259.77it/s]
18221it [01:16, 268.75it/s]
18248it [01:16, 248.30it/s]
18274it [01:16, 242.91it/s]
18299it [01:16, 240.24it/s]
18324it [01:16, 234.97it/s]
18348it [01:17, 232.87it/s]
18372it [01:17, 226.56it/s]
18398it [01:17, 235.71it/s]
18429it [01:17, 254.35it/s]
18459it [01:17, 266.11it/s]
18486it [01:17, 265.73it/s]
18513it [01:17, 254.21it/s]
18539it [01:17, 245.22it/s]
18564it [01:17, 225.81it/s]
18587it [01:18, 218.32it/s]
18610it [01:18, 210.12it/s]
18632it [01:18, 209.20it/s]
18654it [01:18, 205.14it/s]
18675it [01:18, 204.35it/s]
18699it [01:18, 210.76it/s]
18725it [01:18, 220.99it/s]
18751it [01:18, 229.84it/s]
18780it [01:18, 245.38it/s]
18810it [01:18, 258.38it/s]
18842it [01:19, 274.34it/s]
18872it [01:19, 280.33it/s]
18901it [01:19, 273.62it/s]
18929it [01:19, 245.40it/s]
18955it [01:19, 239.17it/s]
18980it [01:19, 218.19it/s]
19003it [01:19, 209.90it/s]
19025it [01:19, 207.58it/s]
19046it [01:20, 201.72it/s]
19067it [01:20, 199.99it/s]
19088it [01:20, 196.07it/s]
19108it [01:20, 193.14it/s]
19129it [01:20, 196.58it/s]
19152it [01:20, 202.03it/s]
19176it [01:20, 211.15it/s]
19198it [01:20, 210.33it/s]
19220it [01:20, 211.77it/s]
19243it [01:20, 217.04it/s]
19269it [01:21, 227.83it/s]
19298it [01:21, 246.03it/s]
19324it [01:21, 249.71it/s]
19352it [01:21, 254.71it/s]
19378it [01:21, 255.28it/s]
19404it [01:21, 208.75it/s]
19427it [01:21, 202.72it/s]
19449it [01:21, 199.41it/s]
19470it [01:22, 197.89it/s]
19491it [01:22, 192.52it/s]
19512it [01:22, 196.08it/s]
19533it [01:22, 198.57it/s]
19554it [01:22, 198.16it/s]
19574it [01:22, 197.77it/s]
19595it [01:22, 198.75it/s]
19617it [01:22, 199.23it/s]
19641it [01:22, 208.86it/s]
19662it [01:22, 205.63it/s]
19686it [01:23, 214.34it/s]
19711it [01:23, 223.07it/s]
19737it [01:23, 232.66it/s]
19761it [01:23, 218.14it/s]
19786it [01:23, 224.52it/s]
19812it [01:23, 233.19it/s]
19836it [01:23, 231.52it/s]
19865it [01:23, 246.92it/s]
19890it [01:23, 202.64it/s]
19912it [01:24, 195.12it/s]
19933it [01:24, 194.37it/s]
19962it [01:24, 217.95it/s]
19992it [01:24, 239.55it/s]
20017it [01:24, 239.00it/s]
20045it [01:24, 249.06it/s]
20071it [01:24, 248.01it/s]
20098it [01:24, 253.61it/s]
20124it [01:25, 219.08it/s]
20150it [01:25, 229.17it/s]
20174it [01:25, 217.71it/s]
20197it [01:25, 205.85it/s]
20225it [01:25, 224.52it/s]
20249it [01:25, 219.24it/s]
20272it [01:25, 209.06it/s]
20294it [01:25, 188.31it/s]
20318it [01:25, 199.23it/s]
20340it [01:26, 203.27it/s]
20365it [01:26, 215.19it/s]
20387it [01:26, 215.40it/s]
20409it [01:26, 210.48it/s]
20431it [01:26, 201.22it/s]
20452it [01:26, 194.58it/s]
20472it [01:26, 187.79it/s]
20491it [01:26, 186.29it/s]
20510it [01:26, 178.84it/s]
20531it [01:27, 186.20it/s]
20555it [01:27, 201.26it/s]
20580it [01:27, 213.37it/s]
20607it [01:27, 229.51it/s]
20631it [01:27, 226.00it/s]
20661it [01:27, 247.08it/s]
20687it [01:27, 249.15it/s]
20715it [01:27, 257.20it/s]
20742it [01:27, 258.14it/s]
20769it [01:27, 259.36it/s]
20798it [01:28, 230.14it/s]
20822it [01:28, 217.38it/s]
20849it [01:28, 231.00it/s]
20882it [01:28, 256.80it/s]
20911it [01:28, 263.94it/s]
20939it [01:28, 266.79it/s]
20967it [01:28, 246.88it/s]
20993it [01:28, 228.53it/s]
21018it [01:29, 234.09it/s]
21042it [01:29, 229.52it/s]
21066it [01:29, 226.98it/s]
21090it [01:29, 224.54it/s]
21119it [01:29, 242.42it/s]
21147it [01:29, 252.17it/s]
21173it [01:29, 249.94it/s]
21202it [01:29, 260.52it/s]
21233it [01:29, 274.43it/s]
21261it [01:29, 266.41it/s]
21290it [01:30, 273.01it/s]
21320it [01:30, 278.84it/s]
21348it [01:30, 266.26it/s]
21376it [01:30, 268.61it/s]
21404it [01:30, 271.27it/s]
21432it [01:30, 265.02it/s]
21459it [01:30, 256.72it/s]
21485it [01:30, 241.10it/s]
21511it [01:30, 244.38it/s]
21536it [01:31, 243.70it/s]
21561it [01:31, 230.61it/s]
21585it [01:31, 221.36it/s]
21608it [01:31, 204.05it/s]
21629it [01:31, 198.56it/s]
21650it [01:31, 183.84it/s]
21669it [01:31, 176.76it/s]
21687it [01:31, 174.92it/s]
21709it [01:32, 185.77it/s]
21733it [01:32, 198.06it/s]
21757it [01:32, 208.69it/s]
21781it [01:32, 216.30it/s]
21805it [01:32, 221.92it/s]
21830it [01:32, 229.88it/s]
21861it [01:32, 252.89it/s]
21887it [01:32, 251.44it/s]
21915it [01:32, 258.09it/s]
21941it [01:33, 169.52it/s]
21966it [01:33, 186.86it/s]
21993it [01:33, 204.42it/s]
22021it [01:33, 218.30it/s]
22045it [01:33, 217.58it/s]
22069it [01:33, 218.12it/s]
22094it [01:33, 226.11it/s]
22119it [01:33, 230.68it/s]
22153it [01:33, 259.82it/s]
22183it [01:34, 270.22it/s]
22211it [01:34, 261.28it/s]
22238it [01:34, 259.86it/s]
22265it [01:34, 254.17it/s]
22293it [01:34, 259.16it/s]
22320it [01:34, 259.82it/s]
22355it [01:34, 284.91it/s]
22388it [01:34, 295.23it/s]
22419it [01:34, 299.20it/s]
22451it [01:34, 302.99it/s]
22482it [01:35, 295.22it/s]
22519it [01:35, 312.69it/s]
22551it [01:35, 308.57it/s]
22590it [01:35, 331.13it/s]
22628it [01:35, 344.61it/s]
22664it [01:35, 348.34it/s]
22703it [01:35, 358.96it/s]
22741it [01:35, 363.70it/s]
22778it [01:35, 349.13it/s]
22814it [01:36, 296.94it/s]
22846it [01:36, 266.80it/s]
22875it [01:36, 241.11it/s]
22901it [01:36, 216.48it/s]
22924it [01:36, 203.49it/s]
22946it [01:36, 182.35it/s]
22965it [01:37, 167.53it/s]
22986it [01:37, 175.18it/s]
23007it [01:37, 181.52it/s]
23029it [01:37, 190.43it/s]
23050it [01:37, 194.40it/s]
23072it [01:37, 200.26it/s]
23098it [01:37, 216.57it/s]
23126it [01:37, 233.52it/s]
23154it [01:37, 245.39it/s]
23184it [01:37, 258.71it/s]
23217it [01:38, 278.74it/s]
23248it [01:38, 285.10it/s]
23277it [01:38, 240.68it/s]
23303it [01:38, 224.34it/s]
23327it [01:38, 147.38it/s]
23355it [01:38, 171.96it/s]
23377it [01:38, 177.59it/s]
23398it [01:39, 178.73it/s]
23421it [01:39, 188.57it/s]
23447it [01:39, 204.61it/s]
23473it [01:39, 218.62it/s]
23501it [01:39, 234.34it/s]
23528it [01:39, 243.26it/s]
23555it [01:39, 248.11it/s]
23581it [01:39, 247.77it/s]
23608it [01:39, 252.48it/s]
23639it [01:40, 267.22it/s]
23672it [01:40, 283.27it/s]
23703it [01:40, 289.13it/s]
23736it [01:40, 297.13it/s]
23768it [01:40, 299.72it/s]
23800it [01:40, 301.45it/s]
23831it [01:40, 294.67it/s]
23861it [01:40, 276.35it/s]
23889it [01:40, 263.16it/s]
23916it [01:41, 249.01it/s]
23942it [01:41, 245.92it/s]
23968it [01:41, 249.45it/s]
23996it [01:41, 249.01it/s]
24021it [01:41, 249.00it/s]
24046it [01:41, 221.05it/s]
24070it [01:41, 224.61it/s]
24093it [01:41, 224.14it/s]
24116it [01:41, 224.34it/s]
24139it [01:42, 209.37it/s]
24161it [01:42, 197.11it/s]
24182it [01:42, 197.44it/s]
24202it [01:42, 185.25it/s]
24221it [01:42, 182.19it/s]
24240it [01:42, 182.33it/s]
24259it [01:42, 172.22it/s]
24278it [01:42, 176.14it/s]
24296it [01:42, 172.76it/s]
24315it [01:43, 175.98it/s]
24337it [01:43, 187.82it/s]
24357it [01:43, 184.56it/s]
24379it [01:43, 193.17it/s]
24404it [01:43, 205.69it/s]
24426it [01:43, 209.57it/s]
24454it [01:43, 228.42it/s]
24484it [01:43, 248.95it/s]
24518it [01:43, 273.99it/s]
24546it [01:43, 271.23it/s]
24574it [01:44, 253.74it/s]
24600it [01:44, 238.71it/s]
24625it [01:44, 228.90it/s]
24651it [01:44, 236.14it/s]
24680it [01:44, 248.98it/s]
24706it [01:44, 180.03it/s]
24727it [01:44, 170.21it/s]
24749it [01:45, 179.14it/s]
24770it [01:45, 184.09it/s]
24792it [01:45, 191.06it/s]
24817it [01:45, 206.03it/s]
24839it [01:45, 209.19it/s]
24863it [01:45, 217.25it/s]
24888it [01:45, 224.70it/s]
24914it [01:45, 232.55it/s]
24942it [01:45, 243.05it/s]
24971it [01:45, 253.83it/s]
25002it [01:46, 268.96it/s]
25030it [01:46, 261.06it/s]
25060it [01:46, 271.28it/s]
25093it [01:46, 287.99it/s]
25128it [01:46, 305.95it/s]
25161it [01:46, 312.24it/s]
25193it [01:46, 291.02it/s]
25223it [01:46, 266.93it/s]
25251it [01:47, 224.03it/s]
25275it [01:47, 211.23it/s]
25304it [01:47, 229.90it/s]
25329it [01:47, 232.99it/s]
25354it [01:47, 229.21it/s]
25378it [01:47, 206.24it/s]
25400it [01:47, 200.74it/s]
25421it [01:47, 183.84it/s]
25443it [01:47, 188.25it/s]
25463it [01:48, 187.76it/s]
25484it [01:48, 191.91it/s]
25504it [01:48, 193.56it/s]
25524it [01:48, 184.14it/s]
25543it [01:48, 178.01it/s]
25561it [01:48, 169.11it/s]
25579it [01:48, 163.58it/s]
25597it [01:48, 167.85it/s]
25620it [01:48, 181.17it/s]
25640it [01:49, 180.63it/s]
25660it [01:49, 185.57it/s]
25682it [01:49, 193.02it/s]
25704it [01:49, 198.99it/s]
25725it [01:49, 201.11it/s]
25747it [01:49, 206.08it/s]
25775it [01:49, 225.12it/s]
25799it [01:49, 229.43it/s]
25831it [01:49, 255.81it/s]
25859it [01:50, 261.72it/s]
25886it [01:50, 260.92it/s]
25913it [01:50, 253.83it/s]
25941it [01:50, 259.63it/s]
25968it [01:50, 195.77it/s]
25990it [01:50, 186.73it/s]
26018it [01:50, 207.81it/s]
26049it [01:50, 232.09it/s]
26074it [01:50, 228.78it/s]
26101it [01:51, 239.01it/s]
26129it [01:51, 245.99it/s]
26155it [01:51, 212.43it/s]
26178it [01:51, 194.02it/s]
26199it [01:51, 196.05it/s]
26221it [01:51, 201.78it/s]
26242it [01:51, 199.03it/s]
26263it [01:51, 194.47it/s]
26283it [01:52, 187.26it/s]
26302it [01:52, 178.07it/s]
26325it [01:52, 192.00it/s]
26345it [01:52, 193.49it/s]
26365it [01:52, 192.62it/s]
26388it [01:52, 201.99it/s]
26417it [01:52, 225.66it/s]
26446it [01:52, 243.93it/s]
26474it [01:52, 253.43it/s]
26506it [01:52, 272.59it/s]
26542it [01:53, 296.95it/s]
26572it [01:53, 296.43it/s]
26603it [01:53, 299.21it/s]
26633it [01:53, 296.72it/s]
26663it [01:53, 293.12it/s]
26693it [01:53, 284.42it/s]
26723it [01:53, 284.91it/s]
26752it [01:53, 286.07it/s]
26787it [01:53, 303.40it/s]
26818it [01:54, 301.60it/s]
26849it [01:54, 249.17it/s]
26876it [01:54, 246.91it/s]
26902it [01:54, 239.80it/s]
26927it [01:54, 205.80it/s]
26949it [01:54, 199.73it/s]
26970it [01:54, 191.72it/s]
26990it [01:54, 176.74it/s]
27009it [01:55, 179.77it/s]
27035it [01:55, 199.79it/s]
27056it [01:55, 198.27it/s]
27077it [01:55, 194.83it/s]
27101it [01:55, 203.97it/s]
27122it [01:55, 205.02it/s]
27143it [01:55, 205.99it/s]
27164it [01:55, 205.36it/s]
27190it [01:55, 219.90it/s]
27216it [01:56, 230.59it/s]
27244it [01:56, 242.76it/s]
27273it [01:56, 251.85it/s]
27302it [01:56, 262.54it/s]
27329it [01:56, 260.91it/s]
27360it [01:56, 273.83it/s]
27389it [01:56, 276.85it/s]
27417it [01:56, 274.96it/s]
27449it [01:56, 282.88it/s]
27479it [01:56, 287.19it/s]
27508it [01:57, 206.43it/s]
27532it [01:57, 208.39it/s]
27558it [01:57, 219.31it/s]
27583it [01:57, 226.90it/s]
27608it [01:57, 229.47it/s]
27633it [01:57, 232.03it/s]
27657it [01:57, 200.88it/s]
27681it [01:57, 206.91it/s]
27703it [01:58, 205.26it/s]
27725it [01:58, 208.06it/s]
27747it [01:58, 194.78it/s]
27767it [01:58, 176.19it/s]
27786it [01:58, 171.70it/s]
27805it [01:58, 175.15it/s]
27826it [01:58, 184.08it/s]
27850it [01:58, 197.17it/s]
27871it [01:58, 200.71it/s]
27898it [01:59, 220.18it/s]
27924it [01:59, 230.96it/s]
27951it [01:59, 241.38it/s]
27978it [01:59, 248.23it/s]
28008it [01:59, 262.95it/s]
28037it [01:59, 270.31it/s]
28065it [01:59, 262.94it/s]
28098it [01:59, 281.09it/s]
28131it [01:59, 293.34it/s]
28161it [02:00, 291.76it/s]
28191it [02:00, 281.48it/s]
28220it [02:00, 280.02it/s]
28249it [02:00, 255.78it/s]
28277it [02:00, 261.60it/s]
28306it [02:00, 268.75it/s]
28338it [02:00, 280.41it/s]
28367it [02:00, 243.71it/s]
28393it [02:00, 236.67it/s]
28418it [02:01, 213.52it/s]
28441it [02:01, 198.12it/s]
28462it [02:01, 198.03it/s]
28483it [02:01, 199.38it/s]
28504it [02:01, 191.79it/s]
28525it [02:01, 194.07it/s]
28546it [02:01, 195.63it/s]
28570it [02:01, 206.90it/s]
28595it [02:01, 216.86it/s]
28624it [02:02, 236.67it/s]
28650it [02:02, 240.94it/s]
28676it [02:02, 245.04it/s]
28703it [02:02, 249.94it/s]
28730it [02:02, 254.14it/s]
28759it [02:02, 263.93it/s]
28787it [02:02, 268.43it/s]
28814it [02:02, 260.25it/s]
28842it [02:02, 262.35it/s]
28869it [02:03, 263.26it/s]
28896it [02:03, 250.99it/s]
28924it [02:03, 257.97it/s]
28950it [02:03, 248.65it/s]
28976it [02:03, 222.65it/s]
28999it [02:03, 168.46it/s]
29019it [02:03, 167.87it/s]
29046it [02:03, 191.35it/s]
29075it [02:04, 214.84it/s]
29102it [02:04, 227.84it/s]
29130it [02:04, 241.45it/s]
29159it [02:04, 254.81it/s]
29191it [02:04, 271.24it/s]
29220it [02:04, 274.29it/s]
29249it [02:04, 278.40it/s]
29278it [02:04, 279.56it/s]
29307it [02:04, 264.77it/s]
29334it [02:04, 260.50it/s]
29365it [02:05, 271.80it/s]
29393it [02:05, 268.45it/s]
29420it [02:05, 267.68it/s]
29449it [02:05, 272.45it/s]
29479it [02:05, 278.53it/s]
29509it [02:05, 283.74it/s]
29538it [02:05, 282.25it/s]
29567it [02:05, 282.84it/s]
29596it [02:05, 282.79it/s]
29625it [02:06, 284.10it/s]
29657it [02:06, 294.25it/s]
29687it [02:06, 267.45it/s]
29719it [02:06, 277.00it/s]
29748it [02:06, 263.21it/s]
29776it [02:06, 264.53it/s]
29803it [02:06, 255.67it/s]
29829it [02:06, 251.53it/s]
29855it [02:06, 245.81it/s]
29880it [02:07, 246.45it/s]
29913it [02:07, 268.19it/s]
29940it [02:07, 261.95it/s]
29967it [02:07, 256.18it/s]
29993it [02:07, 256.06it/s]
30019it [02:07, 250.61it/s]
30053it [02:07, 276.00it/s]
30085it [02:07, 287.81it/s]
30114it [02:07, 288.19it/s]
30143it [02:07, 280.46it/s]
30172it [02:08, 253.48it/s]
30198it [02:08, 221.92it/s]
30222it [02:08, 208.66it/s]
30244it [02:08, 209.22it/s]
30266it [02:08, 199.18it/s]
30295it [02:08, 220.01it/s]
30325it [02:08, 239.28it/s]
30354it [02:08, 251.59it/s]
30382it [02:09, 259.48it/s]
30412it [02:09, 269.39it/s]
30440it [02:09, 260.29it/s]
30467it [02:09, 257.66it/s]
30495it [02:09, 263.72it/s]
30523it [02:09, 265.47it/s]
30550it [02:09, 263.48it/s]
30579it [02:09, 268.28it/s]
30606it [02:09, 263.96it/s]
30635it [02:09, 269.38it/s]
30662it [02:10, 264.26it/s]
30689it [02:10, 257.75it/s]
30715it [02:10, 254.78it/s]
30743it [02:10, 260.76it/s]
30770it [02:10, 258.07it/s]
30796it [02:10, 226.08it/s]
30820it [02:10, 227.03it/s]
30845it [02:10, 228.12it/s]
30869it [02:10, 226.27it/s]
30897it [02:11, 238.87it/s]
30925it [02:11, 250.15it/s]
30954it [02:11, 259.76it/s]
30984it [02:11, 270.69it/s]
31012it [02:11, 266.57it/s]
31041it [02:11, 272.60it/s]
31069it [02:11, 263.80it/s]
31099it [02:11, 271.58it/s]
31130it [02:11, 280.24it/s]
31160it [02:12, 285.04it/s]
31189it [02:12, 286.38it/s]
31218it [02:12, 286.71it/s]
31250it [02:12, 294.52it/s]
31280it [02:12, 292.75it/s]
31310it [02:12, 282.24it/s]
31339it [02:12, 266.29it/s]
31369it [02:12, 274.50it/s]
31402it [02:12, 289.52it/s]
31433it [02:12, 294.93it/s]
31463it [02:13, 290.81it/s]
31493it [02:13, 281.08it/s]
31522it [02:13, 281.89it/s]
31551it [02:13, 279.88it/s]
31580it [02:13, 268.52it/s]
31609it [02:13, 273.26it/s]
31639it [02:13, 276.78it/s]
31670it [02:13, 284.82it/s]
31701it [02:13, 290.90it/s]
31731it [02:14, 276.52it/s]
31759it [02:14, 275.82it/s]
31787it [02:14, 269.28it/s]
31819it [02:14, 283.24it/s]
31850it [02:14, 287.83it/s]
31879it [02:14, 268.51it/s]
31911it [02:14, 282.59it/s]
31940it [02:14, 282.91it/s]
31969it [02:14, 276.17it/s]
31997it [02:15, 273.03it/s]
32025it [02:15, 271.25it/s]
32053it [02:15, 268.06it/s]
32080it [02:15, 259.24it/s]
32106it [02:15, 249.27it/s]
32132it [02:15, 225.00it/s]
32155it [02:15, 217.92it/s]
32178it [02:15, 214.18it/s]
32200it [02:15, 181.93it/s]
32220it [02:16, 177.15it/s]
32242it [02:16, 187.41it/s]
32268it [02:16, 205.15it/s]
32300it [02:16, 235.64it/s]
32331it [02:16, 255.76it/s]
32361it [02:16, 267.54it/s]
32389it [02:16, 269.84it/s]
32417it [02:16, 263.95it/s]
32444it [02:16, 252.80it/s]
32470it [02:17, 229.88it/s]
32494it [02:17, 231.13it/s]
32518it [02:17, 220.92it/s]
32549it [02:17, 243.73it/s]
32576it [02:17, 250.10it/s]
32607it [02:17, 266.29it/s]
32638it [02:17, 276.92it/s]
32667it [02:17, 279.73it/s]
32696it [02:17, 276.97it/s]
32724it [02:18, 277.42it/s]
32753it [02:18, 280.67it/s]
32782it [02:18, 269.41it/s]
32810it [02:18, 270.68it/s]
32838it [02:18, 260.84it/s]
32865it [02:18, 249.34it/s]
32891it [02:18, 231.14it/s]
32915it [02:18, 226.91it/s]
32942it [02:18, 236.82it/s]
32967it [02:19, 235.43it/s]
32994it [02:19, 241.39it/s]
33022it [02:19, 249.90it/s]
33051it [02:19, 260.33it/s]
33082it [02:19, 273.46it/s]
33117it [02:19, 293.09it/s]
33150it [02:19, 302.23it/s]
33181it [02:19, 300.81it/s]
33212it [02:19, 297.04it/s]
33244it [02:19, 303.59it/s]
33284it [02:20, 330.26it/s]
33318it [02:20, 320.96it/s]
33351it [02:20, 316.09it/s]
33383it [02:20, 312.14it/s]
33417it [02:20, 318.65it/s]
33450it [02:20, 320.81it/s]
33483it [02:20, 320.49it/s]
33516it [02:20, 318.87it/s]
33550it [02:20, 323.33it/s]
33583it [02:21, 321.54it/s]
33617it [02:21, 325.69it/s]
33657it [02:21, 345.04it/s]
33698it [02:21, 363.49it/s]
33741it [02:21, 382.49it/s]
33787it [02:21, 402.23it/s]
33830it [02:21, 409.04it/s]
33871it [02:21, 374.54it/s]
33911it [02:21, 381.37it/s]
33950it [02:21, 343.43it/s]
33986it [02:22, 242.67it/s]
34015it [02:22, 191.49it/s]
34039it [02:22, 196.43it/s]
34067it [02:22, 212.89it/s]
34096it [02:22, 229.85it/s]
34126it [02:22, 245.98it/s]
34153it [02:23, 250.02it/s]
34181it [02:23, 256.70it/s]
34208it [02:23, 252.18it/s]
34238it [02:23, 263.30it/s]
34265it [02:23, 263.88it/s]
34293it [02:23, 267.69it/s]
34322it [02:23, 273.87it/s]
34350it [02:23, 269.53it/s]
34378it [02:23, 252.95it/s]
34404it [02:23, 254.62it/s]
34430it [02:24, 254.12it/s]
34459it [02:24, 263.54it/s]
34486it [02:24, 261.33it/s]
34513it [02:24, 227.63it/s]
34537it [02:24, 219.52it/s]
34560it [02:24, 213.70it/s]
34587it [02:24, 226.42it/s]
34616it [02:24, 242.59it/s]
34648it [02:24, 263.90it/s]
34682it [02:25, 283.13it/s]
34713it [02:25, 289.03it/s]
34745it [02:25, 297.10it/s]
34775it [02:25, 292.76it/s]
34805it [02:25, 271.37it/s]
34833it [02:25, 248.95it/s]
34859it [02:25, 235.36it/s]
34889it [02:25, 251.37it/s]
34916it [02:25, 255.48it/s]
34942it [02:26, 224.74it/s]
34966it [02:26, 205.88it/s]
34988it [02:26, 201.80it/s]
35015it [02:26, 216.65it/s]
35051it [02:26, 253.77it/s]
35083it [02:26, 268.97it/s]
35114it [02:26, 279.13it/s]
35143it [02:26, 241.72it/s]
35169it [02:27, 193.39it/s]
35191it [02:27, 188.75it/s]
35212it [02:27, 187.70it/s]
35232it [02:27, 172.24it/s]
35259it [02:27, 194.79it/s]
35286it [02:27, 212.71it/s]
35313it [02:27, 226.39it/s]
35343it [02:27, 245.00it/s]
35370it [02:28, 249.43it/s]
35397it [02:28, 252.53it/s]
35423it [02:28, 252.98it/s]
35451it [02:28, 255.85it/s]
35478it [02:28, 257.32it/s]
35506it [02:28, 260.10it/s]
35533it [02:28, 256.12it/s]
35559it [02:28, 255.27it/s]
35585it [02:28, 240.85it/s]
35613it [02:29, 250.78it/s]
35641it [02:29, 257.86it/s]
35667it [02:29, 257.41it/s]
35695it [02:29, 260.97it/s]
35722it [02:29, 261.27it/s]
35755it [02:29, 279.88it/s]
35784it [02:29, 270.22it/s]
35812it [02:29, 231.91it/s]
35837it [02:30, 167.98it/s]
35857it [02:30, 108.54it/s]
35882it [02:30, 130.14it/s]
35901it [02:30, 140.29it/s]
35932it [02:30, 173.49it/s]
35956it [02:30, 188.06it/s]
35980it [02:30, 200.02it/s]
36004it [02:31, 209.79it/s]
36032it [02:31, 228.56it/s]
36059it [02:31, 237.93it/s]
36085it [02:31, 241.21it/s]
36111it [02:31, 245.00it/s]
36137it [02:31, 245.58it/s]
36163it [02:31, 245.75it/s]
36189it [02:31, 248.25it/s]
36215it [02:31, 240.91it/s]
36244it [02:32, 254.07it/s]
36270it [02:32, 253.83it/s]
36296it [02:32, 236.81it/s]
36320it [02:32, 221.56it/s]
36343it [02:32, 223.60it/s]
36367it [02:32, 225.10it/s]
36390it [02:32, 220.53it/s]
36413it [02:32, 197.12it/s]
36434it [02:33, 148.01it/s]
36451it [02:33, 124.00it/s]
36477it [02:33, 149.55it/s]
36503it [02:33, 171.86it/s]
36529it [02:33, 192.77it/s]
36554it [02:33, 207.15it/s]
36579it [02:33, 213.87it/s]
36605it [02:33, 226.08it/s]
36630it [02:34, 231.57it/s]
36656it [02:34, 238.44it/s]
36675it [02:34, 237.87it/s]
/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/site-packages/AFQ/tasks/segmentation.py:61: UserWarning:

Pass ['to_space'] as keyword args. From version 2.0.0 passing these as positional arguments will result in an error.

/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/site-packages/AFQ/utils/streamlines.py:93: UserWarning:

Pass ['to_space'] as keyword args. From version 2.0.0 passing these as positional arguments will result in an error.


  0%|          | 0/2 [00:00<?, ?it/s]
 50%|█████     | 1/2 [00:00<00:00,  6.11it/s]
100%|██████████| 2/2 [00:00<00:00,  6.49it/s]
100%|██████████| 2/2 [00:00<00:00,  6.42it/s]

  0%|          | 0/2 [00:00<?, ?it/s]
 50%|█████     | 1/2 [00:00<00:00,  6.44it/s]
100%|██████████| 2/2 [00:00<00:00,  6.76it/s]
100%|██████████| 2/2 [00:00<00:00,  6.71it/s]

  0%|          | 0/2 [00:00<?, ?it/s]
 50%|█████     | 1/2 [00:00<00:00,  6.35it/s]
100%|██████████| 2/2 [00:00<00:00,  6.61it/s]
100%|██████████| 2/2 [00:00<00:00,  6.56it/s]

  0%|          | 0/2 [00:00<?, ?it/s]
 50%|█████     | 1/2 [00:00<00:00,  6.77it/s]
100%|██████████| 2/2 [00:00<00:00,  6.92it/s]
100%|██████████| 2/2 [00:00<00:00,  6.89it/s]
/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/site-packages/AFQ/utils/streamlines.py:93: UserWarning:

Pass ['to_space'] as keyword args. From version 2.0.0 passing these as positional arguments will result in an error.

/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/site-packages/AFQ/utils/streamlines.py:93: UserWarning:

Pass ['to_space'] as keyword args. From version 2.0.0 passing these as positional arguments will result in an error.

/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/site-packages/AFQ/utils/streamlines.py:93: UserWarning:

Pass ['to_space'] as keyword args. From version 2.0.0 passing these as positional arguments will result in an error.

Visualize a montage#

One way to examine the output of the pyAFQ pipeline is by creating a montage of images of a particular bundle across a group of participants (or, in this case, the one participant that was analyzed).

Note

The montage file is copied to the present working directory so that it gets properly rendered into the web-page containing this example. It is not necessary to do this when running this type of analysis.

my_afq.combine_bundle("Left Optic Radiation")
montage = my_afq.group_montage(
    "Left Optic Radiation",
    (1, 1), "Axial", "left")
shutil.copy(montage[0], op.split(montage[0])[-1])
plot optic radiations
  0%|          | 0/1 [00:00<?, ?it/s]/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/site-packages/AFQ/utils/streamlines.py:93: UserWarning:

Pass ['to_space'] as keyword args. From version 2.0.0 passing these as positional arguments will result in an error.


100%|██████████| 1/1 [00:00<00:00, 25.26it/s]

  0%|          | 0/1 [00:00<?, ?it/s]
100%|██████████| 1/1 [00:03<00:00,  3.60s/it]
100%|██████████| 1/1 [00:03<00:00,  3.60s/it]

'bundle-Left Optic Radiation_view-Axial_idx-0_montage.png'

Interactive bundle visualization#

Another way to examine the outputs is to export the individual bundle figures, which show the streamlines, as well as the ROIs used to define the bundle. This is an html file, which contains an interactive figure that can be navigated, zoomed, rotated, etc.

bundle_html = my_afq.export("indiv_bundles_figures")
plotly.io.show(bundle_html["NDARAA948VFH"]["Left Optic Radiation"])

References#

1

Caffarra S, Joo SJ, Bloom D, Kruper J, Rokem A, Yeatman JD. Development of the visual white matter pathways mediates development of electrophysiological responses in visual cortex. Hum Brain Mapp. 2021;42(17):5785-5797.

2

Caffarra S, Kanopka K, Kruper J, Richie-Halford A, Roy E, Rokem A, Yeatman JD. Development of the alpha rhythm is linked to visual white matter pathways and visual detection performance. bioRxiv. doi:10.1101/2022.09.03.506461

3

Alexander LM, Escalera J, Ai L, et al. An open resource for transdiagnostic research in pediatric mental health and learning disorders. Sci Data. 2017;4:170181.

4

Richie-Halford A, Cieslak M, Ai L, et al. An analysis-ready and quality controlled resource for pediatric brain white-matter research. Scientific Data. 2022;9(1):1-27.

5

Cieslak M, Cook PA, He X, et al. QSIPrep: an integrative platform for preprocessing and reconstructing diffusion MRI data. Nat Methods. 2021;18(7):775-778.

Total running time of the script: (23 minutes 8.142 seconds)

Estimated memory usage: 4152 MB

Gallery generated by Sphinx-Gallery