def calculate_metrics(data):
    """
    Calculate metrics from extracted data.

    Args:
        data (list): List of tuples containing version, value, and other metrics.

    Returns:
        list: List of dictionaries with calculated metrics.
    """
    result = []
    for item in data:
        version, value, _, _ = item
        metric = {
            'version': version,
            'value': value,
            'ratio': value / 1000,
            'percentage': (value / sum(item[1] for item in data)) * 100
        }
        result.append(metric)
    return result

# Example usage:
data = [('v5_1768236144', 108217.11959687909, 721, 15009.3),
        ('v5_1768235312', 89435.63603047856, 734, 12184.7),
        ('v5_1768235983', 98379.19963352643, 987, 9967.5)]

print(calculate_metrics(data))