<｜begin▁of▁sentence｜>### Instruction:
Suppose a researcher has two sets of 3D coordinates: Dataset X representing original positions, and Dataset Y representing target positions. The two datasets have the same number of points (samples), and the researcher is aiming to find an orthogonal transformation that most closely aligns the points in X to those in Y. How can the researcher use the OrthogonalProcrustes class in graspologic to compute this transformation and apply it to the original dataset?
### Response:
import numpy as np
from graspologic.align import OrthogonalProcrustes

# Dataset X representing the original positions (5 samples in 3-dimensional space)
X = np.array([[1.0, 0.0, 0.0],
               [0.0, 1.0, 0.0],
               [0.0, 0.0, 1.0],
               [1.0, 1.0, 0.0],
               [1.0, 0.0, 1.0]])

# Dataset Y representing the target positions
Y = np.array([[0.0, 1.0, 0.0],
               [1.0, 0.0, 0.0],
               [0.0, 0.0, 1.0],
               [0.0, 1.0, 1.0],
               [1.0, 1.0, 0.0]])

# Initialize the OrthogonalProcrustes class
op = OrthogonalProcrustes()

# Align X to Y and get the transformed dataset
X_prime = op.fit_transform(X, Y)

# The transformed dataset X_prime
print(X_prime)
<|EOT|>
