diff --git a/pipeline_test_command_params.py b/pipeline_test_command_params.py
new file mode 100644
index 0000000000000000000000000000000000000000..d18b9556ffa9f250887eb1cc4470e21a7780d952
--- /dev/null
+++ b/pipeline_test_command_params.py
@@ -0,0 +1,126 @@
+import subprocess
+
+import wandb
+# local imports
+from metrics.instance_segmentation_metrics_in_folder import \
+    InstanceSegmentationMetricsInFolder
+
+# wandb.login()
+
+# wandb.init(project="instance_segmentation_classic", entity="smart_forest")
+
+# define a class to run the command with arguments
+class RunCommand:
+    def __init__(self, cmd, args):
+        self.cmd = cmd
+        self.args = args
+
+    def __call__(self):
+        print("Running command: " + self.cmd + " " + " ".join(self.args))
+        subprocess.run([self.cmd, *self.args])
+
+def main(
+    n_tiles, 
+    slice_thickness, 
+    find_stems_height, 
+    find_stems_thickness, 
+    graph_maximum_cumulative_gap, 
+    add_leaves_voxel_length, 
+    find_stems_min_points, 
+    graph_edge_length, 
+    add_leaves_edge_length
+    ):
+
+    # initialize the sweep
+    run = wandb.init(project="paper-sweep-nibio-model", entity="smart_forest")
+
+    # get files for the sweep
+    print("Getting files for the sweep")
+    cmd = "/home/nibio/mutable-outside-world/code/gitlab_fsct/instance_segmentation_classic/bash_helper_scripts/get_terrestial_sem_seg_validation.sh"
+    subprocess.run([cmd], shell=True)
+
+    # define the arguments for all the parameters from the sweep configuration
+    print("Defining arguments for all the parameters from the sweep configuration")
+    
+    # print the arguments
+    print("N_TILES: " + str(n_tiles))
+    print("SLICE_THICKNESS: " + str(slice_thickness))
+    print("FIND_STEMS_HEIGHT: " + str(find_stems_height))
+    print("FIND_STEMS_THICKNESS: " + str(find_stems_thickness))
+    print("GRAPH_MAXIMUM_CUMULATIVE_GAP: " + str(graph_maximum_cumulative_gap))
+    print("ADD_LEAVES_VOXEL_LENGTH: " + str(add_leaves_voxel_length))
+    print("FIND_STEMS_MIN_POINTS: " + str(find_stems_min_points))
+    print("GRAPH_EDGE_LENGTH: " + str(graph_edge_length))
+    print("ADD_LEAVES_EDGE_LENGTH: " + str(add_leaves_edge_length))
+
+    # define the command
+    cmd = "./run_all_command_line.sh"
+    
+    # define the arguments
+    args = [
+        "-d", "/home/nibio/mutable-outside-world/code/gitlab_fsct/instance_segmentation_classic/sample_playground"
+        ]
+
+    print("Adding the arguments to the list of arguments")
+    args.extend([
+        "-n", str(n_tiles),
+        "-s", str(slice_thickness),
+        "-h", str(find_stems_height),
+        "-t", str(find_stems_thickness),
+        "-g", str(graph_maximum_cumulative_gap),
+        "-l", str(add_leaves_voxel_length),
+        "-m", str(find_stems_min_points),
+        "-o", str(graph_edge_length),
+        "-p", str(add_leaves_edge_length)
+    ])
+
+    # run the command with the arguments
+    print("Running the command with the arguments")
+    RunCommand(cmd, args)()
+
+    # compute the metric
+    print("Computing the metric")
+    metric = InstanceSegmentationMetricsInFolder(
+        gt_las_folder_path = '/home/nibio/mutable-outside-world/code/gitlab_fsct/instance_segmentation_classic/sample_playground/results/input_data',
+        target_las_folder_path = '/home/nibio/mutable-outside-world/code/gitlab_fsct/instance_segmentation_classic/sample_playground/results/instance_segmented_point_clouds',
+        remove_ground=True,
+        verbose=True
+    ) 
+
+    f1_score = metric.main()
+    print("F1 score: " + str(f1_score))
+
+    # log the metric
+    print("Logging the metric")
+    wandb.log({"f1_score": f1_score})
+
+if __name__ == "__main__":
+    # use argparse to get the arguments
+    import argparse
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--n_tiles", type=int, default=1)
+    parser.add_argument("--slice_thickness", type=float, default=0.1)
+    parser.add_argument("--find_stems_height", type=float, default=0.1)
+    parser.add_argument("--find_stems_thickness", type=float, default=0.1)
+    parser.add_argument("--graph_maximum_cumulative_gap", type=float, default=0.1)
+    parser.add_argument("--add_leaves_voxel_length", type=float, default=0.1)
+    parser.add_argument("--find_stems_min_points", type=int, default=1)
+    parser.add_argument("--graph_edge_length", type=float, default=0.1)
+    parser.add_argument("--add_leaves_edge_length", type=float, default=0.1)
+    args = parser.parse_args()
+
+    # run the main function
+    main(
+        args.n_tiles,
+        args.slice_thickness,
+        args.find_stems_height,
+        args.find_stems_thickness,
+        args.graph_maximum_cumulative_gap,
+        args.add_leaves_voxel_length,
+        args.find_stems_min_points,
+        args.graph_edge_length,
+        args.add_leaves_edge_length
+    )
+
+
+