11import argparse
22import os
3+ import logging
34import numpy as np
4- from pipeline .ephys_loader import EphysLoader
5- from pipeline .video_loader import VideoLoader
6- from pipeline .synchronizer import DataSynchronizer
7- from pipeline .nifti_loader import BidsNiftiLoader
5+
6+ logging .basicConfig (
7+ level = logging .INFO ,
8+ format = "%(asctime)s - [%(levelname)s] - %(name)s: %(message)s" ,
9+ datefmt = "%Y-%m-%d %H:%M:%S" ,
10+ )
11+ logger = logging .getLogger ("ExpAlignCLI" )
12+
13+ from .ephys_loader import EphysLoader
14+ from .video_loader import VideoLoader
15+ from .synchronizer import DataSynchronizer
16+ from .nifti_loader import BidsNiftiLoader
17+ from .exporter import Hdf5Exporter
818
919
1020def main ():
1121 parser = argparse .ArgumentParser (
12- description = "ExpAlign : High-Performance Neuro-Data Pipeline"
22+ description = "NeuroAlign : High-Performance Neuro-Data Pipeline"
1323 )
14-
1524 parser .add_argument (
1625 "--ephys" ,
1726 type = str ,
@@ -24,7 +33,6 @@ def main():
2433 parser .add_argument (
2534 "--fmri" , type = str , required = False , help = "Path to the BIDS NIfTI file"
2635 )
27-
2836 parser .add_argument (
2937 "--time" , type = float , required = True , help = "Timestamp in seconds to align"
3038 )
@@ -37,18 +45,17 @@ def main():
3745
3846 args = parser .parse_args ()
3947
40- print ("\n " + "=" * 40 )
41- print (" EXPERANTO MULTIMODAL CLI PIPELINE" )
42- print ("=" * 40 )
48+ logger .info ("Starting NeuroAlign Multimodal Pipeline" )
4349
4450 ephys_loader = None
4551 video_loader = None
4652
4753 if args .ephys :
4854 if not os .path .exists (args .ephys ):
49- print (f"Generating dummy ephys data at { args .ephys } for CLI test..." )
55+ logger .warning (
56+ f"Generating dummy ephys data at { args .ephys } for CLI test..."
57+ )
5058 np .random .rand (1000 ).astype (np .float32 ).tofile (args .ephys )
51-
5259 ephys_loader = EphysLoader (args .ephys , "CLI_Ephys_Dataset" , 30000 , 384 )
5360 ephys_loader .load_data (filter_rule = args .filter )
5461
@@ -57,15 +64,20 @@ def main():
5764 video_loader .load_data ()
5865
5966 if args .fmri :
60- print ( " \n --- Initializing BIDS fMRI Pipeline --- " )
67+ logger . info ( " Initializing BIDS fMRI Pipeline" )
6168 bids_scan = BidsNiftiLoader (args .fmri , "CLI_fMRI_Dataset" )
6269 bids_scan .load_data (filter_rule = args .filter )
6370
6471 if ephys_loader and video_loader :
6572 sync_engine = DataSynchronizer (ephys_loader , video_loader )
66- sync_engine .get_data_at_time (args .time )
73+ ephys_idx , video_frame = sync_engine .get_data_at_time (args .time )
74+
75+ exporter = Hdf5Exporter ()
76+ exporter .export_sync_data (
77+ time_sec = args .time , ephys_idx = ephys_idx , video_frame = video_frame
78+ )
6779
68- print ( "=" * 40 + " \n " )
80+ logger . info ( "Pipeline Execution Finished Successfully. " )
6981
7082
7183if __name__ == "__main__" :
0 commit comments