diff --git a/PyNutil/io/read_and_write.py b/PyNutil/io/read_and_write.py
index c4c5e228fd8d1177908cf8d72b573e5c065c7d6f..133fc58db5f6be309291a618303b94fa16df3e4d 100644
--- a/PyNutil/io/read_and_write.py
+++ b/PyNutil/io/read_and_write.py
@@ -208,79 +208,6 @@ def write_points_to_meshview(points, point_names, filename, info_file):
     write_points(region_dict, filename, info_file)
 
 
-# I think this might not need to be its own function :)
-def save_dataframe_as_csv(df_to_save, output_csv):
-    """Function for saving a df as a CSV file"""
-    df_to_save.to_csv(output_csv, sep=";", na_rep="", index=False)
-
-
-def flat_to_array(file, labelfile):
-    """Read flat file, write into an np array, assign label file values, return array"""
-    if file.endswith(".flat"):
-        with open(file, "rb") as f:
-            # I don't know what b is, w and h are the width and height that we get from the
-            # flat file header
-            b, w, h = struct.unpack(">BII", f.read(9))
-            # Data is a one dimensional list of values
-            # It has the shape width times height
-            data = struct.unpack(">" + ("xBH"[b] * (w * h)), f.read(b * w * h))
-    elif file.endswith(".seg"):
-        with open(file, "rb") as f:
-
-            def byte():
-                return f.read(1)[0]
-
-            def code():
-                c = byte()
-                if c < 0:
-                    raise "!"
-                return c if c < 128 else (c & 127) | (code() << 7)
-
-            if "SegRLEv1" != f.read(8).decode():
-                raise "Header mismatch"
-            atlas = f.read(code()).decode()
-            codes = [code() for x in range(code())]
-            w = code()
-            h = code()
-            data = []
-            while len(data) < w * h:
-                data += [codes[byte() if len(codes) <= 256 else code()]] * (code() + 1)
-
-    # convert flat file data into an array, previously data was a tuple
-    imagedata = np.array(data)
-
-    # create an empty image array in the right shape, write imagedata into image_array
-    image = np.zeros((h, w))
-    for x in range(w):
-        for y in range(h):
-            image[y, x] = imagedata[x + y * w]
-
-    image_arr = np.array(image)
-    # return image_arr
-
-    """assign label file values into image array"""
-    labelfile = pd.read_csv(labelfile)
-    allen_id_image = np.zeros((h, w))  # create an empty image array
-    coordsy, coordsx = np.meshgrid(list(range(w)), list(range(h)))
-    values = image_arr[
-        coordsx, coordsy
-    ]  # assign x,y coords from image_array into values
-    lbidx = labelfile["idx"].values
-    allen_id_image = lbidx[values.astype(int)]
-    return allen_id_image
-
-
-def files_in_directory(directory):
-    """return list of flat file names in a directory"""
-    list_of_files = []
-    for file in os.scandir(directory):
-        if file.path.endswith(".flat") and file.is_file:
-            filename = os.path.basename(file)
-            newfilename, file_ext = os.path.splitext(filename)
-            list_of_files.append(newfilename)
-    return list_of_files
-
-
 def read_atlas_volume(atlas_volume_path):
     """return data from atlas volume"""
     data, header = nrrd.read(atlas_volume_path)
diff --git a/PyNutil/processing/counting_and_load.py b/PyNutil/processing/counting_and_load.py
index 0b549e6a4037cdb5ebe0e0e021d969376c47b8a1..f86af434af781377675c661f093c5b5444851730 100644
--- a/PyNutil/processing/counting_and_load.py
+++ b/PyNutil/processing/counting_and_load.py
@@ -6,48 +6,6 @@ from .generate_target_slice import generate_target_slice
 from .visualign_deformations import transform_vec
 
 
-# related to counting and load
-def label_points(points, label_volume, scale_factor=1):
-    """
-    Assigns points to regions based on the label_volume.
-
-    Args:
-        points (list): List of points.
-        label_volume (ndarray): Volume with region labels.
-        scale_factor (int, optional): Scaling factor for points. Defaults to 1.
-
-    Returns:
-        ndarray: Labels for each point.
-    """
-    # First convert the points to 3 columns
-    points = np.reshape(points, (-1, 3))
-    # Scale the points
-    points = points * scale_factor
-    # Round the points to the nearest whole number
-    points = np.round(points).astype(int)
-    x = points[:, 0]
-    y = points[:, 1]
-    z = points[:, 2]
-
-    # make sure the points are within the volume
-    x[x < 0] = 0
-    y[y < 0] = 0
-    z[z < 0] = 0
-    mask = (
-        (x > label_volume.shape[0] - 1)
-        | (y > label_volume.shape[1] - 1)
-        | (z > label_volume.shape[2] - 1)
-    )
-    x[mask] = 0
-    y[mask] = 0
-    z[mask] = 0
-
-    # Get the label value for each point
-    labels = label_volume[x, y, z]
-
-    return labels
-
-
 # related to counting_and_load
 def pixel_count_per_region(
     labels_dict_points,
diff --git a/PyNutil/processing/data_analysis.py b/PyNutil/processing/data_analysis.py
index dc7816afdebc3dcc2c3972145ee9025206d8ef30..d2cfccc62df69a19b9ea2dd4889614ad08c092e2 100644
--- a/PyNutil/processing/data_analysis.py
+++ b/PyNutil/processing/data_analysis.py
@@ -111,8 +111,6 @@ def quantify_labeled_points(
     Returns:
         tuple: Labeled points, labeled centroids, label DataFrame, per section DataFrame.
     """
-    # labeled_points_centroids = label_points(centroids, atlas_volume)
-    # labeled_points = label_points(pixel_points, atlas_volume, scale_factor=1)
 
     per_section_df = _quantify_per_section(
         labeled_points,