PANPRS#

In this notebook, we will use PANPRS to calculate the PRS. For more details, you can visit the PANPRSnext GitHub repository and the PANPRSnext documentation.

PANPRS is a shrinkage estimator for polygenic risk prediction (PRS) models based on summary statistics of genome-wide association (GWA) studies. It is based on the methods and original ‘PANPRS’ package as described in: Chen, Chatterjee, Landi, and Shi (2020) doi:10.1080/01621459.2020.1764849.

Installation#

Note: PANPRS needs to be installed in R.

It provides two implementations: sparse matrix and dense matrix.

For the sparse matrix implementation, install the R package as follows:

install.packages("PANPRSnext")
install.packages("permutations")
devtools::install_github("katherine-h-l/PANPRSnext@sparse", force = TRUE)

For the dense matrix implementation, install the R package as follows:

install.packages("PANPRSnext")
devtools::install_github("katherine-h-l/PANPRSnext@master", force = TRUE)
  • Dense Implementation Used: We utilized the dense matrix implementation.

  • Annotation Information: PANPRS allows including annotation information but does not provide an annotation file that can be used as input. Onc can pass the Annotation file.

  • Function Used: We employed the gsPEN_R function to calculate the new betas from PANPRS. PANPRS offers multiple functions to calculate the PRS dpending on the data.

  • Multiple GWAS Information: The function supports passing multiple GWAS information and uses z-statistics, which can be computed as follows: $\( Z = \frac{\beta}{SE} \)$

  • LD File Generation: The function also uses the plinkLD, which can be computed for the genotype using the following command:

  ./plink --bfile SampleData1/Fold_0/train_data.QC.clumped.pruned --r --extract SampleData1/Fold_0/train_data.prune.in --ld-window-r2 0.1 --ld-window-kb 200 --out SampleData1/Fold_0/train_data_LDFile

Sample Code#

library(PANPRSnext)
data("summaryZ")
data("Nvec")
data("plinkLD")

subset <- sample(nrow(summaryZ), 100)
subset_summary_z <- summaryZ[subset, ]

output <- gsPEN_R(
  summary_z = subset_summary_z,
  n_vec = Nvec,
  plinkLD = plinkLD
)

Modified function#

output <- gsPEN_R(
  summary_z = summary_z,
  n_vec = GWAS$N[1],
  debug_output = TRUE,
  plinkLD = LDfile,
  n_iter = 1000,
  z_scale = 1,
  tau_factor = c(1/25, 1),
  len_lim_lambda = 20,
  sub_tuning = 20,
  lim_lambda = c(0.5, 0.9),
  len_lambda = 20,
  sparse_beta = FALSE
)

PANPRS Parameters we considered#

Specify these parameters in the PANPRS.R file:

  • tau_factor = c(1/25, 1)

  • lim_lambda = c(0.5, 0.9)

The following parameters are specified in this file below:

  • panprs_n_iter = 1000

  • panprs_z_scale = 1

  • panprs_len_lim_lambda = 20

  • panprs_sub_tuning = 20

  • panprs_len_lambda = 20

  • panprs_sparse_beta = FALSE

PANPRS Parameters#

Parameter

Description

summary_z

A matrix of summary statistics for each SNP and trait.

n_vec

A vector of sample sizes for each of the Q traits corresponding to the Q columns of summary_z.

plinkLD

A matrix of LD values for each pair of SNPs.

n_iter

The number of iterations to run the algorithm.

upper_val

The upper bound for the tuning parameter.

breaking

The number of iterations to run before checking for convergence.

z_scale

The scaling factor for the summary statistics.

tuning_matrix

A matrix of tuning parameters.

tau_factor

A vector of factors to multiply the median value by to get the tuning parameters.

len_lim_lambda

The number of tuning parameters to use for the first iteration.

sub_tuning

The number of tuning parameters to use for the second iteration.

lim_lambda

The range of tuning parameters to use for the first iteration.

len_lambda

The number of tuning parameters to use for the second iteration.

df_max

The maximum degrees of freedom for the model.

sparse_beta

Whether to use the sparse version of the algorithm.

debug_output

Whether to output the tuning combinations that did not converge.

verbose

Whether to output information through the evaluation of the algorithm.

PANPRS.R file#

Place the following file in the current working directory.

library(PANPRSnext)
args <- commandArgs(trailingOnly = TRUE) 
print(args)

# 1. Argument one is the directory. Example: `SampleData1`
# 2. Argument two is the file name. Example: `SampleData1\\Fold_0`
# 3. Argument three is the output file name. Example: `train_data`
# 4. Argument four is the specific function to be called. Example: `train_data.QC.clumped.pruned`
# 5. Argument five is the GWAS. Example: `PANPRSGWAS`
 
# 6. Argument six is iteration. Example: n_iter
# 7. Argument seven is z_scale. Example: 2.5
# 8. Argument eight is len_lim_lambda. Example: 10
# 9. Argument nine is sub_tuning. Example: 0.1
# 10. Argument ten is len_lambda. Example: 100

# panprs_n_iter = 1000
# panprs_z_scale = 1
# panprs_len_lim_lambda = 20
# panprs_sub_tuning = 20
# panprs_len_lambda = 20

result <- paste(".", args[2], args[5], sep = "//")
GWAS <- read.table(result, header = TRUE, sep = "\t")

result <- paste(".", args[2], "train_data_LDFile.ld", sep = "//")
LDfile <- read.table(result, header = TRUE, sep = "")

summary_z <- data.frame(
  Zobs1 = GWAS$z_statistic
)

output <- gsPEN_R(
  summary_z = summary_z,
  n_vec = GWAS$N[1],
  debug_output = TRUE,
  plinkLD = LDfile,
  n_iter = as.numeric(args[6]),
  z_scale = as.numeric(args[7]),
  tau_factor = c(1/25, 1),
  len_lim_lambda = as.numeric(args[8]),
  sub_tuning = as.numeric(args[9]),
  lim_lambda = c(0.5, 0.9),
  len_lambda = as.numeric(args[10]),
  sparse_beta = as.logical(args[11])
)

result <- paste(".", args[2], "PANPRSGWASBETAS", sep = "//")

if (file.exists(result)) {
  file.remove(result)
  print(paste("File", result, "deleted."))
}
write.table(output$beta_matrix, file = result)

result <- paste(".", args[2], "PANPRSGWASARGUMENTS", sep = "//")

if (file.exists(result)) {
  file.remove(result)
  print(paste("File", result, "deleted."))
}
write.table(output$all_tuning_matrix, file = result)

GWAS file processing for PANPRS for Binary Phenotypes.#

When the effect size relates to disease risk and is thus given as an odds ratio (OR) rather than BETA (for continuous traits), the PRS is computed as a product of ORs. To simplify this calculation, take the natural logarithm of the OR so that the PRS can be computed using summation instead.

For continuous phenotype GWAS, the SampleData1/SampleData1.gz file should have BETAs, and for binary phenotypes, it should have OR instead of BETAs. If BETAs are not available, we convert OR to BETAs using BETA = np.log(OR) and convert BETAs to OR using OR = np.exp(BETA).

import numpy as np; np is the NumPy module.

import pandas as pd
from scipy.stats import norm
import os
import numpy as np
import sys


def check_phenotype_is_binary_or_continous(filedirec):
    # Read the processed quality controlled file for a phenotype
    df = pd.read_csv(filedirec+os.sep+filedirec+'_QC.fam',sep="\s+",header=None)
    column_values = df[5].unique()
 
    if len(set(column_values)) == 2:
        return "Binary"
    else:
        return "Continous"

filedirec = "SampleData1"
#filedirec = "asthma_19"
#filedirec = "migraine_0"

GWAS = filedirec + os.sep + filedirec+".gz"
df = pd.read_csv(GWAS,compression= "gzip",sep="\s+")

if "BETA" in df.columns.to_list():
    # For Continous Phenotype.
    df = df[['CHR', 'BP', 'SNP', 'A1', 'A2', 'N', 'SE', 'P', 'BETA', 'INFO', 'MAF']]

else:
    df["BETA"] = np.log(df["OR"])
    df = df[['CHR', 'BP', 'SNP', 'A1', 'A2', 'N', 'SE', 'P', 'BETA', 'INFO', 'MAF']]


output_file = filedirec+os.sep+"PANPRSGWAS"


# We calculated Z statistics from BETAs and SE.

df['z_statistic'] = df['BETA']/df['SE']
print(df.head())

df.to_csv(output_file,sep="\t",index=False)

print(len(df))
 
   CHR      BP         SNP A1 A2       N        SE         P      BETA  \
0    1  756604   rs3131962  A  G  388028  0.003017  0.483171 -0.002115   
1    1  768448  rs12562034  A  G  388028  0.003295  0.834808  0.000687   
2    1  779322   rs4040617  G  A  388028  0.003033  0.428970 -0.002399   
3    1  801536  rs79373928  G  T  388028  0.008413  0.808999  0.002034   
4    1  808631  rs11240779  G  A  388028  0.002428  0.590265  0.001307   

       INFO       MAF  z_statistic  
0  0.890558  0.369390    -0.701213  
1  0.895894  0.336846     0.208540  
2  0.897508  0.377368    -0.790957  
3  0.908963  0.483212     0.241718  
4  0.893213  0.450410     0.538450  
499617

Define Hyperparameters#

Define hyperparameters to be optimized and set initial values.

Extract Valid SNPs from Clumped File#

For Windows, download gwak, and for Linux, the awk command is sufficient. For Windows, GWAK is required. You can download it from here. Get it and place it in the same directory.

Execution Path#

At this stage, we have the genotype training data newtrainfilename = "train_data.QC" and genotype test data newtestfilename = "test_data.QC".

We modified the following variables:

  1. filedirec = "SampleData1" or filedirec = sys.argv[1]

  2. foldnumber = "0" or foldnumber = sys.argv[2] for HPC.

Only these two variables can be modified to execute the code for specific data and specific folds. Though the code can be executed separately for each fold on HPC and separately for each dataset, it is recommended to execute it for multiple diseases and one fold at a time. Here’s the corrected text in Markdown format:

P-values#

PRS calculation relies on P-values. SNPs with low P-values, indicating a high degree of association with a specific trait, are considered for calculation.

You can modify the code below to consider a specific set of P-values and save the file in the same format.

We considered the following parameters:

  • Minimum P-value: 1e-10

  • Maximum P-value: 1.0

  • Minimum exponent: 10 (Minimum P-value in exponent)

  • Number of intervals: 100 (Number of intervals to be considered)

The code generates an array of logarithmically spaced P-values:

import numpy as np
import os

minimumpvalue = 10  # Minimum exponent for P-values
numberofintervals = 100  # Number of intervals to be considered

allpvalues = np.logspace(-minimumpvalue, 0, numberofintervals, endpoint=True)  # Generating an array of logarithmically spaced P-values

print("Minimum P-value:", allpvalues[0])
print("Maximum P-value:", allpvalues[-1])

count = 1
with open(os.path.join(folddirec, 'range_list'), 'w') as file:
    for value in allpvalues:
        file.write(f'pv_{value} 0 {value}\n')  # Writing range information to the 'range_list' file
        count += 1

pvaluefile = os.path.join(folddirec, 'range_list')

In this code:

  • minimumpvalue defines the minimum exponent for P-values.

  • numberofintervals specifies how many intervals to consider.

  • allpvalues generates an array of P-values spaced logarithmically.

  • The script writes these P-values to a file named range_list in the specified directory.

from operator import index
import pandas as pd
import numpy as np
import os
import subprocess
import sys
import pandas as pd
import statsmodels.api as sm
import pandas as pd
from sklearn.metrics import roc_auc_score, confusion_matrix
from statsmodels.stats.contingency_tables import mcnemar

def create_directory(directory):
    """Function to create a directory if it doesn't exist."""
    if not os.path.exists(directory):  # Checking if the directory doesn't exist
        os.makedirs(directory)  # Creating the directory if it doesn't exist
    return directory  # Returning the created or existing directory

 
#foldnumber = sys.argv[1]
foldnumber = "1"  # Setting 'foldnumber' to "0"

folddirec = filedirec + os.sep + "Fold_" + foldnumber  # Creating a directory path for the specific fold
trainfilename = "train_data"  # Setting the name of the training data file
newtrainfilename = "train_data.QC"  # Setting the name of the new training data file

testfilename = "test_data"  # Setting the name of the test data file
newtestfilename = "test_data.QC"  # Setting the name of the new test data file

# Number of PCA to be included as a covariate.
numberofpca = ["6"]  # Setting the number of PCA components to be included

# Clumping parameters.
clump_p1 = [1]  # List containing clump parameter 'p1'
clump_r2 = [0.1]  # List containing clump parameter 'r2'
clump_kb = [200]  # List containing clump parameter 'kb'

# Pruning parameters.
p_window_size = [200]  # List containing pruning parameter 'window_size'
p_slide_size = [50]  # List containing pruning parameter 'slide_size'
p_LD_threshold = [0.25]  # List containing pruning parameter 'LD_threshold'

# Kindly note that the number of p-values to be considered varies, and the actual p-value depends on the dataset as well.
# We will specify the range list here.

minimumpvalue = 10  # Minimum p-value in exponent
numberofintervals = 20  # Number of intervals to be considered
allpvalues = np.logspace(-minimumpvalue, 0, numberofintervals, endpoint=True)  # Generating an array of logarithmically spaced p-values



count = 1
with open(folddirec + os.sep + 'range_list', 'w') as file:
    for value in allpvalues:
        file.write(f'pv_{value} 0 {value}\n')  # Writing range information to the 'range_list' file
        count = count + 1

pvaluefile = folddirec + os.sep + 'range_list'

# Initializing an empty DataFrame with specified column names
prs_result = pd.DataFrame(columns=["clump_p1", "clump_r2", "clump_kb", "p_window_size", "p_slide_size", "p_LD_threshold",
                                   "pvalue", "numberofpca","numberofvariants","Train_pure_prs", "Train_null_model", "Train_best_model",
                                   "Test_pure_prs", "Test_null_model", "Test_best_model"])

Define Helper Functions#

  1. Perform Clumping and Pruning

  2. Calculate PCA Using Plink

  3. Fit Binary Phenotype and Save Results

  4. Fit Continuous Phenotype and Save Results

import os
import subprocess
import pandas as pd
import statsmodels.api as sm
from sklearn.metrics import explained_variance_score


def perform_clumping_and_pruning_on_individual_data(traindirec, newtrainfilename,numberofpca, p1_val, p2_val, p3_val, c1_val, c2_val, c3_val,Name,pvaluefile):
    
    command = [
    "./plink",
    "--bfile", traindirec+os.sep+newtrainfilename,
    "--indep-pairwise", p1_val, p2_val, p3_val,
    "--out", traindirec+os.sep+trainfilename
    ]
    subprocess.run(command)
    # First perform pruning and then clumping and the pruning.

    command = [
    "./plink",
    "--bfile", traindirec+os.sep+newtrainfilename,
    "--clump-p1", c1_val,
    "--extract", traindirec+os.sep+trainfilename+".prune.in",
    "--clump-r2", c2_val,
    "--clump-kb", c3_val,
    "--clump", filedirec+os.sep+filedirec+".txt",
    "--clump-snp-field", "SNP",
    "--clump-field", "P",
    "--out", traindirec+os.sep+trainfilename
    ]    
    subprocess.run(command)

    # Extract the valid SNPs from th clumped file.
    # For windows download gwak for linux awk commmand is sufficient.
    ### For windows require GWAK.
    ### https://sourceforge.net/projects/gnuwin32/
    ##3 Get it and place it in the same direc.
    #os.system("gawk "+"\""+"NR!=1{print $3}"+"\"  "+ traindirec+os.sep+trainfilename+".clumped >  "+traindirec+os.sep+trainfilename+".valid.snp")
    #print("gawk "+"\""+"NR!=1{print $3}"+"\"  "+ traindirec+os.sep+trainfilename+".clumped >  "+traindirec+os.sep+trainfilename+".valid.snp")

    #Linux:
    command = f"awk 'NR!=1{{print $3}}' {traindirec}{os.sep}{trainfilename}.clumped > {traindirec}{os.sep}{trainfilename}.valid.snp"
    os.system(command)
    
    command = [
    "./plink",
    "--make-bed",
    "--bfile", traindirec+os.sep+newtrainfilename,
    "--indep-pairwise", p1_val, p2_val, p3_val,
    "--extract", traindirec+os.sep+trainfilename+".valid.snp",
    "--out", traindirec+os.sep+newtrainfilename+".clumped.pruned"
    ]
    subprocess.run(command)
    
    command = [
    "./plink",
    "--make-bed",
    "--bfile", traindirec+os.sep+testfilename,
    "--indep-pairwise", p1_val, p2_val, p3_val,
    "--extract", traindirec+os.sep+trainfilename+".valid.snp",
    "--out", traindirec+os.sep+testfilename+".clumped.pruned"
    ]
    subprocess.run(command)    
    
    
 
def calculate_pca_for_traindata_testdata_for_clumped_pruned_snps(traindirec, newtrainfilename,p):
    
    # Calculate the PRS for the test data using the same set of SNPs and also calculate the PCA.


    # Also extract the PCA at this point.
    # PCA are calculated afer clumping and pruining.
    command = [
        "./plink",
        "--bfile", folddirec+os.sep+testfilename+".clumped.pruned",
        # Select the final variants after clumping and pruning.
        "--extract", traindirec+os.sep+trainfilename+".valid.snp",
        "--pca", p,
        "--out", folddirec+os.sep+testfilename
    ]
    subprocess.run(command)


    command = [
    "./plink",
        "--bfile", traindirec+os.sep+newtrainfilename+".clumped.pruned",
        # Select the final variants after clumping and pruning.        
        "--extract", traindirec+os.sep+trainfilename+".valid.snp",
        "--pca", p,
        "--out", traindirec+os.sep+trainfilename
    ]
    subprocess.run(command)

# This function fit the binary model on the PRS.
def fit_binary_phenotype_on_PRS(traindirec, newtrainfilename,panprs_parameters_count,p,rr,n_iter,z_scale,len_lim_lambda,sub_tuning,len_lambda,sparse_beta, p1_val, p2_val, p3_val, c1_val, c2_val, c3_val,Name,pvaluefile,lambda1,lambda2,tau):
    threshold_values = allpvalues

    # Merge the covariates, pca and phenotypes.
    tempphenotype_train = pd.read_table(traindirec+os.sep+newtrainfilename+".clumped.pruned"+".fam", sep="\s+",header=None)
    phenotype_train = pd.DataFrame()
    phenotype_train["Phenotype"] = tempphenotype_train[5].values
    pcs_train = pd.read_table(traindirec+os.sep+trainfilename+".eigenvec", sep="\s+",header=None, names=["FID", "IID"] + [f"PC{str(i)}" for i in range(1, int(p)+1)])
    covariate_train = pd.read_table(traindirec+os.sep+trainfilename+".cov",sep="\s+")
    covariate_train.fillna(0, inplace=True)
    covariate_train = covariate_train[covariate_train["FID"].isin(pcs_train["FID"].values) & covariate_train["IID"].isin(pcs_train["IID"].values)]
    covariate_train['FID'] = covariate_train['FID'].astype(str)
    pcs_train['FID'] = pcs_train['FID'].astype(str)
    covariate_train['IID'] = covariate_train['IID'].astype(str)
    pcs_train['IID'] = pcs_train['IID'].astype(str)
    covandpcs_train = pd.merge(covariate_train, pcs_train, on=["FID","IID"])
    covandpcs_train.fillna(0, inplace=True)


    ## Scale the covariates!
    from sklearn.preprocessing import MinMaxScaler
    from sklearn.metrics import explained_variance_score
    scaler = MinMaxScaler()
    normalized_values_train = scaler.fit_transform(covandpcs_train.iloc[:, 2:])
    #covandpcs_train.iloc[:, 2:] = normalized_values_test 
    
    
    tempphenotype_test = pd.read_table(traindirec+os.sep+testfilename+".clumped.pruned"+".fam", sep="\s+",header=None)
    phenotype_test= pd.DataFrame()
    phenotype_test["Phenotype"] = tempphenotype_test[5].values
    pcs_test = pd.read_table(traindirec+os.sep+testfilename+".eigenvec", sep="\s+",header=None, names=["FID", "IID"] + [f"PC{str(i)}" for i in range(1, int(p)+1)])
    covariate_test = pd.read_table(traindirec+os.sep+testfilename+".cov",sep="\s+")
    covariate_test.fillna(0, inplace=True)
    covariate_test = covariate_test[covariate_test["FID"].isin(pcs_test["FID"].values) & covariate_test["IID"].isin(pcs_test["IID"].values)]
    covariate_test['FID'] = covariate_test['FID'].astype(str)
    pcs_test['FID'] = pcs_test['FID'].astype(str)
    covariate_test['IID'] = covariate_test['IID'].astype(str)
    pcs_test['IID'] = pcs_test['IID'].astype(str)
    covandpcs_test = pd.merge(covariate_test, pcs_test, on=["FID","IID"])
    covandpcs_test.fillna(0, inplace=True)
    normalized_values_test  = scaler.transform(covandpcs_test.iloc[:, 2:])
    #covandpcs_test.iloc[:, 2:] = normalized_values_test     
    
    
    
    
    tempalphas = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]
    l1weights = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]

    tempalphas = [0.1]
    l1weights = [0.1]

    phenotype_train["Phenotype"] = phenotype_train["Phenotype"].replace({1: 0, 2: 1}) 
    phenotype_test["Phenotype"] = phenotype_test["Phenotype"].replace({1: 0, 2: 1})
      
    for tempalpha in tempalphas:
        for l1weight in l1weights:

            
            try:
                null_model =  sm.Logit(phenotype_train["Phenotype"], sm.add_constant(covandpcs_train.iloc[:, 2:])).fit_regularized(alpha=tempalpha, L1_wt=l1weight)
                #null_model =  sm.Logit(phenotype_train["Phenotype"], sm.add_constant(covandpcs_train.iloc[:, 2:])).fit()
            
            except:
                print("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
                continue

            train_null_predicted = null_model.predict(sm.add_constant(covandpcs_train.iloc[:, 2:]))
            
            from sklearn.metrics import roc_auc_score, confusion_matrix
            from sklearn.metrics import r2_score
            
            test_null_predicted = null_model.predict(sm.add_constant(covandpcs_test.iloc[:, 2:]))
            
           
            
            global prs_result 
            for i in threshold_values:
                try:
                    prs_train = pd.read_table(traindirec+os.sep+Name+os.sep+"train_data.pv_"+f"{i}.profile", sep="\s+", usecols=["FID", "IID", "SCORE"])
                except:
                    continue

                prs_train['FID'] = prs_train['FID'].astype(str)
                prs_train['IID'] = prs_train['IID'].astype(str)
                try:
                    prs_test = pd.read_table(traindirec+os.sep+Name+os.sep+"test_data.pv_"+f"{i}.profile", sep="\s+", usecols=["FID", "IID", "SCORE"])
                except:
                    continue
                prs_test['FID'] = prs_test['FID'].astype(str)
                prs_test['IID'] = prs_test['IID'].astype(str)
                pheno_prs_train = pd.merge(covandpcs_train, prs_train, on=["FID", "IID"])
                pheno_prs_test = pd.merge(covandpcs_test, prs_test, on=["FID", "IID"])
        
                try:
                    model = sm.Logit(phenotype_train["Phenotype"], sm.add_constant(pheno_prs_train.iloc[:, 2:])).fit_regularized(alpha=tempalpha, L1_wt=l1weight)
                    #model = sm.Logit(phenotype_train["Phenotype"], sm.add_constant(pheno_prs_train.iloc[:, 2:])).fit()
                
                except:
                    continue


                
                train_best_predicted = model.predict(sm.add_constant(pheno_prs_train.iloc[:, 2:]))    
 

                test_best_predicted = model.predict(sm.add_constant(pheno_prs_test.iloc[:, 2:])) 
 
        
                from sklearn.metrics import roc_auc_score, confusion_matrix

                prs_result = prs_result._append({
                    "clump_p1": c1_val,
                    "clump_r2": c2_val,
                    "clump_kb": c3_val,
                    "p_window_size": p1_val,
                    "p_slide_size": p2_val,
                    "p_LD_threshold": p3_val,
                    "pvalue": i,
                    "numberofpca":p, 

                    "tempalpha":str(tempalpha),
                    "l1weight":str(l1weight),
                    "numberofvariants": len(pd.read_csv(traindirec+os.sep+newtrainfilename+".clumped.pruned.bim")),
                    
                    "PlinkLDtype":rr,
                    "panprs_n_iter":n_iter,
                    "panprs_z_scale":z_scale,
                    "panprs_len_lim_lambda":len_lim_lambda,
                    "panprs_sub_tuning":sub_tuning,
                    "panprs_len_lambda":len_lambda,
                    "panprs_sparse_beta":sparse_beta,
                     "panprs_lambda1":lambda1,
                     "panprs_lambda2":lambda2,
                     "panprs_tau":tau,
                    "panprs_parameters_count":str(panprs_parameters_count),
                    

                    "Train_pure_prs":roc_auc_score(phenotype_train["Phenotype"].values,prs_train['SCORE'].values),
                    "Train_null_model":roc_auc_score(phenotype_train["Phenotype"].values,train_null_predicted.values),
                    "Train_best_model":roc_auc_score(phenotype_train["Phenotype"].values,train_best_predicted.values),
                    
                    "Test_pure_prs":roc_auc_score(phenotype_test["Phenotype"].values,prs_test['SCORE'].values),
                    "Test_null_model":roc_auc_score(phenotype_test["Phenotype"].values,test_null_predicted.values),
                    "Test_best_model":roc_auc_score(phenotype_test["Phenotype"].values,test_best_predicted.values),
                    
                }, ignore_index=True)

          
                prs_result.to_csv(traindirec+os.sep+Name+os.sep+"Results.csv",index=False)
     
    return

# This function fit the binary model on the PRS.
def fit_continous_phenotype_on_PRS(traindirec, newtrainfilename,panprs_parameters_count,p,rr,n_iter,z_scale,len_lim_lambda,sub_tuning,len_lambda,sparse_beta, p1_val, p2_val, p3_val, c1_val, c2_val, c3_val,Name,pvaluefile,lambda1,lambda2,tau):
    threshold_values = allpvalues

    # Merge the covariates, pca and phenotypes.
    tempphenotype_train = pd.read_table(traindirec+os.sep+newtrainfilename+".clumped.pruned"+".fam", sep="\s+",header=None)
    phenotype_train = pd.DataFrame()
    phenotype_train["Phenotype"] = tempphenotype_train[5].values
    pcs_train = pd.read_table(traindirec+os.sep+trainfilename+".eigenvec", sep="\s+",header=None, names=["FID", "IID"] + [f"PC{str(i)}" for i in range(1, int(p)+1)])
    covariate_train = pd.read_table(traindirec+os.sep+trainfilename+".cov",sep="\s+")
    covariate_train.fillna(0, inplace=True)
    covariate_train = covariate_train[covariate_train["FID"].isin(pcs_train["FID"].values) & covariate_train["IID"].isin(pcs_train["IID"].values)]
    covariate_train['FID'] = covariate_train['FID'].astype(str)
    pcs_train['FID'] = pcs_train['FID'].astype(str)
    covariate_train['IID'] = covariate_train['IID'].astype(str)
    pcs_train['IID'] = pcs_train['IID'].astype(str)
    covandpcs_train = pd.merge(covariate_train, pcs_train, on=["FID","IID"])
    covandpcs_train.fillna(0, inplace=True)


    ## Scale the covariates!
    from sklearn.preprocessing import MinMaxScaler
    from sklearn.metrics import explained_variance_score
    scaler = MinMaxScaler()
    normalized_values_train = scaler.fit_transform(covandpcs_train.iloc[:, 2:])
    #covandpcs_train.iloc[:, 2:] = normalized_values_test 
    
    tempphenotype_test = pd.read_table(traindirec+os.sep+testfilename+".clumped.pruned"+".fam", sep="\s+",header=None)
    phenotype_test= pd.DataFrame()
    phenotype_test["Phenotype"] = tempphenotype_test[5].values
    pcs_test = pd.read_table(traindirec+os.sep+testfilename+".eigenvec", sep="\s+",header=None, names=["FID", "IID"] + [f"PC{str(i)}" for i in range(1, int(p)+1)])
    covariate_test = pd.read_table(traindirec+os.sep+testfilename+".cov",sep="\s+")
    covariate_test.fillna(0, inplace=True)
    covariate_test = covariate_test[covariate_test["FID"].isin(pcs_test["FID"].values) & covariate_test["IID"].isin(pcs_test["IID"].values)]
    covariate_test['FID'] = covariate_test['FID'].astype(str)
    pcs_test['FID'] = pcs_test['FID'].astype(str)
    covariate_test['IID'] = covariate_test['IID'].astype(str)
    pcs_test['IID'] = pcs_test['IID'].astype(str)
    covandpcs_test = pd.merge(covariate_test, pcs_test, on=["FID","IID"])
    covandpcs_test.fillna(0, inplace=True)
    normalized_values_test  = scaler.transform(covandpcs_test.iloc[:, 2:])
    #covandpcs_test.iloc[:, 2:] = normalized_values_test     
    
    
    
    
    tempalphas = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]
    l1weights = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]

    tempalphas = [0.1]
    l1weights = [0.1]

    #phenotype_train["Phenotype"] = phenotype_train["Phenotype"].replace({1: 0, 2: 1}) 
    #phenotype_test["Phenotype"] = phenotype_test["Phenotype"].replace({1: 0, 2: 1})
      
    for tempalpha in tempalphas:
        for l1weight in l1weights:

            
            try:
                #null_model =  sm.OLS(phenotype_train["Phenotype"], sm.add_constant(covandpcs_train.iloc[:, 2:])).fit_regularized(alpha=tempalpha, L1_wt=l1weight)
                null_model =  sm.OLS(phenotype_train["Phenotype"], sm.add_constant(covandpcs_train.iloc[:, 2:])).fit()
                #null_model =  sm.OLS(phenotype_train["Phenotype"], sm.add_constant(covandpcs_train.iloc[:, 2:])).fit()
            except:
                print("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
                continue

            train_null_predicted = null_model.predict(sm.add_constant(covandpcs_train.iloc[:, 2:]))
            
            from sklearn.metrics import roc_auc_score, confusion_matrix
            from sklearn.metrics import r2_score
            
            test_null_predicted = null_model.predict(sm.add_constant(covandpcs_test.iloc[:, 2:]))
            
            
            
            global prs_result 
            for i in threshold_values:
                try:
                    prs_train = pd.read_table(traindirec+os.sep+Name+os.sep+"train_data.pv_"+f"{i}.profile", sep="\s+", usecols=["FID", "IID", "SCORE"])
                except:
                    print("fffffffffff")
                    continue

                prs_train['FID'] = prs_train['FID'].astype(str)
                prs_train['IID'] = prs_train['IID'].astype(str)
                try:
                    prs_test = pd.read_table(traindirec+os.sep+Name+os.sep+"test_data.pv_"+f"{i}.profile", sep="\s+", usecols=["FID", "IID", "SCORE"])
                except:
                    continue
                prs_test['FID'] = prs_test['FID'].astype(str)
                prs_test['IID'] = prs_test['IID'].astype(str)
                pheno_prs_train = pd.merge(covandpcs_train, prs_train, on=["FID", "IID"])
                pheno_prs_test = pd.merge(covandpcs_test, prs_test, on=["FID", "IID"])
        
                try:
                    #model = sm.OLS(phenotype_train["Phenotype"], sm.add_constant(pheno_prs_train.iloc[:, 2:])).fit_regularized(alpha=tempalpha, L1_wt=l1weight)
                    model = sm.OLS(phenotype_train["Phenotype"], sm.add_constant(pheno_prs_train.iloc[:, 2:])).fit()
                
                except:
                    "CCCCCCCCCCCCCCCCCCCCC"
                    continue


                
                train_best_predicted = model.predict(sm.add_constant(pheno_prs_train.iloc[:, 2:]))    
                test_best_predicted = model.predict(sm.add_constant(pheno_prs_test.iloc[:, 2:])) 
 
        
                from sklearn.metrics import roc_auc_score, confusion_matrix

                prs_result = prs_result._append({
                    "clump_p1": c1_val,
                    "clump_r2": c2_val,
                    "clump_kb": c3_val,
                    "p_window_size": p1_val,
                    "p_slide_size": p2_val,
                    "p_LD_threshold": p3_val,
                    "pvalue": i,
                    "numberofpca":p, 

                    "tempalpha":str(tempalpha),
                    "l1weight":str(l1weight),
                    
                    "PlinkLDtype":rr,
                    "panprs_n_iter":n_iter,
                    "panprs_z_scale":z_scale,
                    "panprs_len_lim_lambda":len_lim_lambda,
                    "panprs_sub_tuning":sub_tuning,
                    "panprs_len_lambda":len_lambda,
                    "panprs_sparse_beta":sparse_beta,
                    "panprs_lambda1":lambda1,
                    "panprs_lambda2":lambda2,
                    "panprs_tau":tau,                     
                    "panprs_parameters_count":str(panprs_parameters_count),
                    
                    "Train_pure_prs":explained_variance_score(phenotype_train["Phenotype"],prs_train['SCORE'].values),
                    "Train_null_model":explained_variance_score(phenotype_train["Phenotype"],train_null_predicted),
                    "Train_best_model":explained_variance_score(phenotype_train["Phenotype"],train_best_predicted),
                    
                    "Test_pure_prs":explained_variance_score(phenotype_test["Phenotype"],prs_test['SCORE'].values),
                    "Test_null_model":explained_variance_score(phenotype_test["Phenotype"],test_null_predicted),
                    "Test_best_model":explained_variance_score(phenotype_test["Phenotype"],test_best_predicted),
                    
                }, ignore_index=True)

          
                prs_result.to_csv(traindirec+os.sep+Name+os.sep+"Results.csv",index=False)
     
    return

Execute PANPRS#

import os
import subprocess
import pandas as pd
import statsmodels.api as sm
from sklearn.metrics import explained_variance_score

# Define a global variable to store results
prs_result = pd.DataFrame()

def transform_panprs_data(traindirec, newtrainfilename,numberofpca,rr,n_iter,z_scale,len_lim_lambda,sub_tuning,len_lambda,sparse_beta,p1_val, p2_val, p3_val, c1_val, c2_val, c3_val,Name,pvaluefile):
    ### First perform clumping on the file and save the clumpled file.
    perform_clumping_and_pruning_on_individual_data(traindirec, newtrainfilename,p, p1_val, p2_val, p3_val, c1_val, c2_val, c3_val,Name,pvaluefile)
    
    #newtrainfilename = newtrainfilename+".clumped.pruned"
    #testfilename = testfilename+".clumped.pruned"
    
    
    #clupmedfile = traindirec+os.sep+newtrainfilename+".clump"
    #prunedfile = traindirec+os.sep+newtrainfilename+".clumped.pruned"

        
    # Also extract the PCA at this point for both test and training data.
    calculate_pca_for_traindata_testdata_for_clumped_pruned_snps(traindirec, newtrainfilename,p)

    #Extract p-values from the GWAS file.
    # Command for Linux.
    os.system("awk "+"\'"+"{print $3,$8}"+"\'"+" ./"+filedirec+os.sep+filedirec+".txt >  ./"+traindirec+os.sep+"SNP.pvalue")

    # Command for windows.
    ### For windows get GWAK.
    ### https://sourceforge.net/projects/gnuwin32/
    ##3 Get it and place it in the same direc.
    #os.system("gawk "+"\""+"{print $3,$8}"+"\""+" ./"+filedirec+os.sep+filedirec+".txt >  ./"+traindirec+os.sep+"SNP.pvalue")
    #print("gawk "+"\""+"{print $3,$8}"+"\""+" ./"+filedirec+os.sep+filedirec+".txt >  ./"+traindirec+os.sep+"SNP.pvalue")

    #exit(0)
 
    
    # PANPRS requires a linkage disequilibrium (LD) file, which can be generated using PLINK.
    # In this command, we can choose between two options: `r` (correlation coefficient) or `r2` (squared correlation coefficient).
    # The main differences between them:
    #   - `r` measures the linear correlation between two SNPs and ranges from -1 to 1.
    #   - `r2` is the square of `r` and measures the proportion of variance in one SNP that can be predicted by the other.
    # For most genetic studies, `r2` is commonly used because it provides a clearer interpretation of the strength of the relationship.
    # However, `r` can still be useful for specific analyses. In this script, the value of `rr` determines whether `r` or `r2` is used.
    
    command = [
        "./plink",
        "--bfile", traindirec + os.sep + newtrainfilename + ".clumped.pruned",  # Input file containing pruned SNPs
        "--" + str(rr),  # Specify whether to use `r` or `r2` for LD calculation based on the value of `rr`
        "--extract", traindirec + os.sep + trainfilename + ".prune.in",  # List of SNPs to include in the LD calculation
        "--ld-window-r2", c2_val,  # Threshold for LD pruning (only used if `r2` is specified)
        "--ld-window-kb", c3_val,  # Size of the LD window in kilobases
        "--out", traindirec + os.sep + trainfilename + "_LDFile"  # Output file for the LD calculation
    ]

    # Run the PLINK command to generate the LD file.
    subprocess.run(command)

  
    bim = pd.read_csv(traindirec+os.sep+newtrainfilename+".clumped.pruned"+".bim",header=None,sep="\s+")[1].values
    gwas = pd.read_csv(filedirec+os.sep+"PANPRSGWAS",sep="\s+")
    gwas = gwas[gwas["SNP"].isin(bim)]
    gwas.to_csv(traindirec+os.sep+"PANPRSGWAS",sep="\t",index=False)
    
    # Delete files generated in the previous iteration.
    files_to_remove = [
        os.path.join(traindirec, "PANPRSGWASARGUMENTS"),
        os.path.join(traindirec, "PANPRSGWASBETAS"),
        os.path.join(traindirec, "NEWPANPRS")
 
    ]

    # Loop through the files and directories and remove them if they exist
    for file_path in files_to_remove:
        if os.path.exists(file_path):
            if os.path.isfile(file_path):
                os.remove(file_path)
                print(f"Removed file: {file_path}")
            elif os.path.isdir(file_path):
                shutil.rmtree(file_path)
                print(f"Removed directory: {file_path}")
        else:
            print(f"File or directory does not exist: {file_path}")
    
    
    gridparameters_path = os.path.join(traindirec, "PANPRSGWASARGUMENTS")
    allbetas_path = os.path.join(traindirec, "PANPRSGWASBETAS")
    gwas_path = os.path.join(traindirec, "NEWPANPRS")
 
        
        
    os.system("Rscript PANPRS.R "+os.path.join(filedirec)+"  "+traindirec+" "+trainfilename+
              " "+newtrainfilename+".clumped.pruned"+" "+"PANPRSGWAS" +" "+ str(n_iter)+" "+
              str(z_scale)+" "+str(len_lim_lambda)+" "+str(sub_tuning)+" "+str(len_lambda)+" "+sparse_beta)
 
    print("Rscript PANPRS.R "+os.path.join(filedirec)+"  "+traindirec+" "+trainfilename+
              " "+newtrainfilename+".clumped.pruned"+" "+"PANPRSGWAS" +" "+ str(n_iter)+" "+
              str(z_scale)+" "+str(len_lim_lambda)+" "+str(sub_tuning)+" "+str(len_lambda)+" "+sparse_beta)
     
    gridparameters = pd.read_csv(traindirec+os.sep+"PANPRSGWASARGUMENTS",sep="\s+")
    allbetas = pd.read_csv(traindirec+os.sep+"PANPRSGWASBETAS",sep="\s+")
    allbetas = allbetas.fillna(0)
    
    print(gridparameters.shape)
    print(allbetas.shape)
    print(gridparameters)
    print(allbetas)
    

    gwas = pd.read_csv(traindirec+os.sep+"PANPRSGWAS",sep="\t")
    
    panprs_parameters_count = 0
    for index, row in gridparameters.iterrows():
        # Accessing individual elements in the row
        #print(index)
        #raise
        lambda1 = row['lambda1']   
        lambda2 = row['lambda2']
        tau = row['tau']   
        panprs_parameters_count = panprs_parameters_count+1
        
        gwas["newbetas"] = allbetas.iloc[index-1, :].values
        
        if check_phenotype_is_binary_or_continous(filedirec)=="Binary":
            gwas["newbetas"] = np.exp(gwas["newbetas"])
        else:
            pass        
        
        #print(gwas.head())
        gwas.iloc[:,[2,3,12]].to_csv(traindirec+os.sep+"NEWPANPRS",sep="\t",index=False)
        #print(gwas)
        #raise
          
        command = [
            "./plink",
             "--bfile", traindirec+os.sep+newtrainfilename+".clumped.pruned",
            ### SNP column = 1, Effect allele column 2 = 4, Effect column=4
            "--score", traindirec+os.sep+"NEWPANPRS", "1", "2", "3", "header",
            "--q-score-range", traindirec+os.sep+"range_list",traindirec+os.sep+"SNP.pvalue",
            #"--extract", traindirec+os.sep+trainfilename+".valid.snp",
            "--out", traindirec+os.sep+Name+os.sep+trainfilename
        ]
        #exit(0)
        subprocess.run(command)
  

        command = [
            "./plink",
            "--bfile", folddirec+os.sep+testfilename,
            ### SNP column = 3, Effect allele column 1 = 4, Beta column=12
             "--score", traindirec+os.sep+"NEWPANPRS", "1", "2", "3", "header",
            "--q-score-range", traindirec+os.sep+"range_list",traindirec+os.sep+"SNP.pvalue",
            "--out", folddirec+os.sep+Name+os.sep+testfilename
        ]
        subprocess.run(command)

        
        
        if check_phenotype_is_binary_or_continous(filedirec)=="Binary":
            print("Binary Phenotype!")
            fit_binary_phenotype_on_PRS(traindirec, newtrainfilename,panprs_parameters_count,p, rr,n_iter,z_scale,len_lim_lambda,sub_tuning,len_lambda,sparse_beta, p1_val, p2_val, p3_val, c1_val, c2_val, c3_val,Name,pvaluefile,row['lambda1'] ,row['lambda2'],row['tau'])
        else:
            print("Continous Phenotype!")
            fit_continous_phenotype_on_PRS(traindirec, newtrainfilename,panprs_parameters_count,p,rr,n_iter,z_scale,len_lim_lambda,sub_tuning,len_lambda,sparse_beta, p1_val, p2_val, p3_val, c1_val, c2_val, c3_val,Name,pvaluefile,row['lambda1'] ,row['lambda2'],row['tau'])

      
panprs_n_iter = [1000]
panprs_z_scale = [1]
panprs_len_lim_lambda = [20]
panprs_sub_tuning = [20]
panprs_len_lambda = [20]
panprs_sparse_beta = [ "FALSE"]
 
    
    
#allpvalues = [allpvalues[0]]
r = ["r"]

result_directory = "PANPRS"
# Nested loops to iterate over different parameter values
create_directory(folddirec+os.sep+result_directory)
for p1_val in p_window_size:
 for p2_val in p_slide_size:
  for p3_val in p_LD_threshold:
   for c1_val in clump_p1:
    for c2_val in clump_r2:
     for c3_val in clump_kb:
      for p in numberofpca:
       for rr in r:
        for n_iter in panprs_n_iter:
         for z_scale in panprs_z_scale:
          for len_lim_lambda in panprs_len_lim_lambda:
           for sub_tuning in panprs_sub_tuning:
            for len_lambda in panprs_len_lambda:
             for sparse_beta in panprs_sparse_beta:
              transform_panprs_data(folddirec, newtrainfilename, p,rr,n_iter,z_scale,len_lim_lambda,sub_tuning,len_lambda,sparse_beta, str(p1_val), str(p2_val), str(p3_val), str(c1_val), str(c2_val), str(c3_val),result_directory, pvaluefile)
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/train_data_LDFile.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --extract SampleData1/Fold_1/train_data.prune.in
  --ld-window-kb 200
  --ld-window-r2 0.1
  --out SampleData1/Fold_1/train_data_LDFile
  --r

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
--extract: 173148 variants remaining.
Using up to 8 threads (change this with --threads).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--r to SampleData1/Fold_1/train_data_LDFile.ld ... 0% [processingwriting]          done.
Removed file: SampleData1/Fold_1/PANPRSGWASARGUMENTS
Removed file: SampleData1/Fold_1/PANPRSGWASBETAS
Removed file: SampleData1/Fold_1/NEWPANPRS
Loading required package: gtools
 [1] "SampleData1"                  "SampleData1/Fold_1"          
 [3] "train_data"                   "train_data.QC.clumped.pruned"
 [5] "PANPRSGWAS"                   "1000"                        
 [7] "1"                            "20"                          
 [9] "20"                           "20"                          
[11] "FALSE"                       
[1] "1"
Rscript PANPRS.R SampleData1  SampleData1/Fold_1 train_data train_data.QC.clumped.pruned PANPRSGWAS 1000 1 20 20 20 FALSE
(37, 3)
(37, 173148)
     lambda1  lambda2       tau
1   2.916782      NaN       NaN
2   2.916782      0.0  0.001921
3   2.826247      NaN       NaN
4   2.826247      0.0  0.001921
5   2.735713      NaN       NaN
6   2.735713      0.0  0.001921
7   2.645178      NaN       NaN
8   2.645178      0.0  0.001921
9   2.554644      NaN       NaN
10  2.554644      0.0  0.001921
11  2.464109      NaN       NaN
12  2.464109      0.0  0.001921
13  2.373575      NaN       NaN
14  2.373575      0.0  0.001921
15  2.283040      NaN       NaN
16  2.283040      0.0  0.001921
17  2.192506      NaN       NaN
18  2.192506      0.0  0.001921
19  2.101971      NaN       NaN
20  2.101971      0.0  0.001921
21  2.011437      NaN       NaN
22  2.011437      0.0  0.001921
23  1.920902      NaN       NaN
24  1.920902      0.0  0.001921
25  1.830368      NaN       NaN
26  1.830368      0.0  0.001921
27  1.739833      NaN       NaN
28  1.739833      0.0  0.001921
29  1.649299      NaN       NaN
30  1.649299      0.0  0.001921
31  1.558764      NaN       NaN
32  1.558764      0.0  0.001921
33  1.468230      NaN       NaN
34  1.468230      0.0  0.001921
35  1.377695      NaN       NaN
36  1.377695      0.0  0.001921
37  1.287161      NaN       NaN
    1.trait1  2.trait1  3.trait1  4.trait1  5.trait1  6.trait1  7.trait1  \
1          0         0         0         0  0.000000  0.000000  0.000000   
2          0         0         0         0  0.000000  0.000000  0.000000   
3          0         0         0         0  0.000000  0.000000  0.000000   
4          0         0         0         0  0.000000  0.000000  0.000000   
5          0         0         0         0  0.000000  0.000000  0.000000   
6          0         0         0         0  0.000000  0.000000  0.000000   
7          0         0         0         0  0.000000  0.000000  0.000000   
8          0         0         0         0  0.000000  0.000000  0.000000   
9          0         0         0         0  0.000050  0.000000  0.000000   
10         0         0         0         0  0.000050  0.000000  0.000000   
11         0         0         0         0  0.000196  0.000000  0.000000   
12         0         0         0         0  0.000196  0.000000  0.000000   
13         0         0         0         0  0.000341  0.000000  0.000000   
14         0         0         0         0  0.000341  0.000000  0.000000   
15         0         0         0         0  0.000486  0.000000  0.000000   
16         0         0         0         0  0.000486  0.000000  0.000000   
17         0         0         0         0  0.000632  0.000000  0.000000   
18         0         0         0         0  0.000632  0.000000  0.000000   
19         0         0         0         0  0.000777  0.000000  0.000000   
20         0         0         0         0  0.000777  0.000000  0.000000   
21         0         0         0         0  0.000922  0.000000  0.000000   
22         0         0         0         0  0.000922  0.000000  0.000000   
23         0         0         0         0  0.001068  0.000000  0.000000   
24         0         0         0         0  0.001068  0.000000  0.000000   
25         0         0         0         0  0.001213  0.000000 -0.000144   
26         0         0         0         0  0.001213  0.000000 -0.000144   
27         0         0         0         0  0.001359  0.000000 -0.000290   
28         0         0         0         0  0.001359  0.000000 -0.000290   
29         0         0         0         0  0.001504  0.000000 -0.000435   
30         0         0         0         0  0.001504  0.000000 -0.000435   
31         0         0         0         0  0.001649 -0.000040 -0.000580   
32         0         0         0         0  0.001649 -0.000040 -0.000580   
33         0         0         0         0  0.001795 -0.000185 -0.000726   
34         0         0         0         0  0.001795 -0.000185 -0.000726   
35         0         0         0         0  0.001940 -0.000331 -0.000871   
36         0         0         0         0  0.001940 -0.000331 -0.000871   
37         0         0         0         0  0.002085 -0.000476 -0.001016   

    8.trait1  9.trait1  10.trait1  ...  173139.trait1  173140.trait1  \
1          0  0.000000          0  ...              0       0.000000   
2          0  0.000000          0  ...              0       0.000000   
3          0  0.000000          0  ...              0       0.000000   
4          0  0.000000          0  ...              0       0.000000   
5          0  0.000000          0  ...              0       0.000000   
6          0  0.000000          0  ...              0       0.000000   
7          0  0.000000          0  ...              0       0.000000   
8          0  0.000000          0  ...              0       0.000000   
9          0  0.000000          0  ...              0       0.000000   
10         0  0.000000          0  ...              0       0.000000   
11         0  0.000000          0  ...              0       0.000000   
12         0  0.000000          0  ...              0       0.000000   
13         0  0.000000          0  ...              0       0.000000   
14         0  0.000000          0  ...              0       0.000000   
15         0  0.000000          0  ...              0       0.000000   
16         0  0.000000          0  ...              0       0.000000   
17         0  0.000000          0  ...              0       0.000000   
18         0  0.000000          0  ...              0       0.000000   
19         0  0.000000          0  ...              0       0.000000   
20         0  0.000000          0  ...              0       0.000000   
21         0  0.000000          0  ...              0       0.000000   
22         0  0.000000          0  ...              0       0.000000   
23         0  0.000000          0  ...              0       0.000000   
24         0  0.000000          0  ...              0       0.000000   
25         0  0.000000          0  ...              0       0.000000   
26         0  0.000000          0  ...              0       0.000000   
27         0  0.000000          0  ...              0       0.000000   
28         0  0.000000          0  ...              0       0.000000   
29         0  0.000000          0  ...              0       0.000000   
30         0  0.000000          0  ...              0       0.000000   
31         0  0.000000          0  ...              0       0.000000   
32         0  0.000000          0  ...              0       0.000000   
33         0  0.000000          0  ...              0       0.000000   
34         0  0.000000          0  ...              0       0.000000   
35         0  0.000000          0  ...              0      -0.000039   
36         0  0.000000          0  ...              0      -0.000039   
37         0  0.000067          0  ...              0      -0.000184   

    173141.trait1  173142.trait1  173143.trait1  173144.trait1  173145.trait1  \
1        0.000000       0.000000       0.000000              0       0.001316   
2        0.000000       0.000000       0.000000              0       0.001316   
3        0.000000       0.000000       0.000000              0       0.001462   
4        0.000000       0.000000       0.000000              0       0.001462   
5        0.000000       0.000000       0.000000              0       0.001607   
6        0.000000       0.000000       0.000000              0       0.001607   
7        0.000000       0.000000       0.000000              0       0.001752   
8        0.000000       0.000000       0.000000              0       0.001752   
9        0.000000       0.000000       0.000000              0       0.001898   
10       0.000000       0.000000       0.000000              0       0.001898   
11       0.000000       0.000000       0.000000              0       0.002043   
12       0.000000       0.000000       0.000000              0       0.002043   
13       0.000000       0.000000       0.000000              0       0.002188   
14       0.000000       0.000000       0.000000              0       0.002188   
15       0.000000       0.000000       0.000000              0       0.002334   
16       0.000000       0.000000       0.000000              0       0.002334   
17       0.000000       0.000000       0.000000              0       0.002479   
18       0.000000       0.000000       0.000000              0       0.002479   
19      -0.000006       0.000000       0.000000              0       0.002624   
20      -0.000006       0.000000       0.000000              0       0.002624   
21      -0.000151       0.000000       0.000000              0       0.002770   
22      -0.000151       0.000000       0.000000              0       0.002770   
23      -0.000296       0.000000       0.000000              0       0.002915   
24      -0.000296       0.000000       0.000000              0       0.002915   
25      -0.000442       0.000000       0.000000              0       0.003060   
26      -0.000442       0.000000       0.000000              0       0.003060   
27      -0.000587       0.000000       0.000000              0       0.003206   
28      -0.000587       0.000000       0.000000              0       0.003206   
29      -0.000732       0.000000      -0.000137              0       0.003351   
30      -0.000732       0.000000      -0.000137              0       0.003351   
31      -0.000878       0.000000      -0.000283              0       0.003496   
32      -0.000878       0.000000      -0.000283              0       0.003496   
33      -0.001023       0.000000      -0.000428              0       0.003642   
34      -0.001023       0.000000      -0.000428              0       0.003642   
35      -0.001168       0.000000      -0.000573              0       0.003787   
36      -0.001168       0.000000      -0.000573              0       0.003787   
37      -0.001314      -0.000068      -0.000719              0       0.003932   

    173146.trait1  173147.trait1  173148.trait1  
1       -0.001022       0.000000       0.001658  
2       -0.001022       0.000000       0.001658  
3       -0.001167       0.000000       0.001803  
4       -0.001167       0.000000       0.001803  
5       -0.001313       0.000000       0.001949  
6       -0.001313       0.000000       0.001949  
7       -0.001458       0.000058       0.002094  
8       -0.001458       0.000058       0.002094  
9       -0.001603       0.000203       0.002239  
10      -0.001603       0.000203       0.002239  
11      -0.001749       0.000349       0.002385  
12      -0.001749       0.000349       0.002385  
13      -0.001894       0.000494       0.002530  
14      -0.001894       0.000494       0.002530  
15      -0.002039       0.000639       0.002675  
16      -0.002039       0.000639       0.002675  
17      -0.002185       0.000785       0.002821  
18      -0.002185       0.000785       0.002821  
19      -0.002330       0.000930       0.002966  
20      -0.002330       0.000930       0.002966  
21      -0.002475       0.001075       0.003111  
22      -0.002475       0.001075       0.003111  
23      -0.002621       0.001221       0.003257  
24      -0.002621       0.001221       0.003257  
25      -0.002766       0.001366       0.003402  
26      -0.002766       0.001366       0.003402  
27      -0.002911       0.001511       0.003547  
28      -0.002911       0.001511       0.003547  
29      -0.003057       0.001657       0.003693  
30      -0.003057       0.001657       0.003693  
31      -0.003202       0.001802       0.003838  
32      -0.003202       0.001802       0.003838  
33      -0.003347       0.001947       0.003983  
34      -0.003347       0.001947       0.003983  
35      -0.003493       0.002093       0.004129  
36      -0.003493       0.002093       0.004129  
37      -0.003638       0.002238       0.004274  

[37 rows x 173148 columns]
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 0%1%2%3%4%5%6%7%8%9%10%11%12%13%14%15%16%17%18%19%20%21%22%23%24%25%26%27%28%29%30%31%32%33%34%35%36%37%38%39%40%41%42%43%44%45%46%47%48%49%50%51%52%53%54%55%56%57%58%59%60%61%62%63%64%65%66%67%68%69%70%71%72%73%74%75%76%77%78%79%80%81%82%83%84%85%86%87%88%89%90%91%92%93%94%95%96%97%98%99% done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 0%1%2%3%4%5%6%7%8%9%10%11%12%13%14%15%16%17%18%19%20%21%22%23%24%25%26%27%28%29%30%31%32%33%34%35%36%37%38%39%40%41%42%43%44%45%46%47%48%49%50%51%52%53%54%55%56%57%58%59%60%61%62%63%64%65%66%67%68%69%70%71%72%73%74%75%76%77%78%79%80%81%82%83%84%85%86%87%88%89%90%91%92%93%94%95%96%97%98%99%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 0%1%2%3%4%5%6%7%8%9%10%11%12%13%14%15%16%17%18%19%20%21%22%23%24%25%26%27%28%29%30%31%32%33%34%35%36%37%38%39%40%41%42%43%44%45%46%47%48%49%50%51%52%53%54%55%56%57%58%59%60%61%62%63%64%65%66%67%68%69%70%71%72%73%74%75%76%77%78%79%80%81%82%83%84%85%86%87%88%89%90%91%92%93%94%95%96%97%98%99%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899%
Warning: 326470 lines skipped in --q-score-range data file.
 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
Continous Phenotype!--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.

PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/train_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/train_data.QC.clumped.pruned
  --out SampleData1/Fold_1/PANPRS/train_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
173148 variants loaded from .bim file.
380 people (178 males, 202 females) loaded from .fam.
380 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 380 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999917.
173148 variants and 380 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/train_data.*.profile.
PLINK v1.90b7.2 64-bit (11 Dec 2023)           www.cog-genomics.org/plink/1.9/
(C) 2005-2023 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to SampleData1/Fold_1/PANPRS/test_data.log.
Options in effect:
  --bfile SampleData1/Fold_1/test_data
  --out SampleData1/Fold_1/PANPRS/test_data
  --q-score-range SampleData1/Fold_1/range_list SampleData1/Fold_1/SNP.pvalue
  --score SampleData1/Fold_1/NEWPANPRS 1 2 3 header

63761 MB RAM detected; reserving 31880 MB for main workspace.
551892 variants loaded from .bim file.
95 people (49 males, 46 females) loaded from .fam.
95 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 95 founders and 0 nonfounders present.
Calculating allele frequencies... 10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 done.
Total genotyping rate is 0.999794.
551892 variants and 95 people pass filters and QC.
Phenotype data is quantitative.
--score: 173148 valid predictors loaded.
Warning: 326470 lines skipped in --q-score-range data file.
--score: 20 ranges processed.
Results written to SampleData1/Fold_1/PANPRS/test_data.*.profile.
Continous Phenotype!

Repeat the process for each fold.#

Change the foldnumber variable.

#foldnumber = sys.argv[1]
foldnumber = "0"  # Setting 'foldnumber' to "0"

Or uncomment the following line:

# foldnumber = sys.argv[1]
python PANPRS.py 0
python PANPRS.py 1
python PANPRS.py 2
python PANPRS.py 3
python PANPRS.py 4

The following files should exist after the execution:

  1. SampleData1/Fold_0/PANPRS/Results.csv

  2. SampleData1/Fold_1/PANPRS/Results.csv

  3. SampleData1/Fold_2/PANPRS/Results.csv

  4. SampleData1/Fold_3/PANPRS/Results.csv

  5. SampleData1/Fold_4/PANPRS/Results.csv

Check the results file for each fold.#

import os

 
# List of file names to check for existence
f = [
    "./"+filedirec+"/Fold_0"+os.sep+result_directory+"Results.csv",
    "./"+filedirec+"/Fold_1"+os.sep+result_directory+"Results.csv",
    "./"+filedirec+"/Fold_2"+os.sep+result_directory+"Results.csv",
    "./"+filedirec+"/Fold_3"+os.sep+result_directory+"Results.csv",
    "./"+filedirec+"/Fold_4"+os.sep+result_directory+"Results.csv",
]

 

# Loop through each file name in the list
for loop in range(0,5):
    # Check if the file exists in the specified directory for the given fold
    if os.path.exists(filedirec+os.sep+"Fold_"+str(loop)+os.sep+result_directory+os.sep+"Results.csv"):
        temp = pd.read_csv(filedirec+os.sep+"Fold_"+str(loop)+os.sep+result_directory+os.sep+"Results.csv")
        print("Fold_",loop, "Yes, the file exists.")
        #print(temp.tail())
        print("Number of P-values processed: ",len(temp))
        # Print a message indicating that the file exists
    
    else:
        # Print a message indicating that the file does not exist
        print("Fold_",loop, "No, the file does not exist.")
Fold_ 0 Yes, the file exists.
Number of P-values processed:  740
Fold_ 1 Yes, the file exists.
Number of P-values processed:  740
Fold_ 2 Yes, the file exists.
Number of P-values processed:  740
Fold_ 3 Yes, the file exists.
Number of P-values processed:  740
Fold_ 4 Yes, the file exists.
Number of P-values processed:  740

Sum the results for each fold.#

print("We have to ensure when we sum the entries across all Folds, the same rows are merged!")

def sum_and_average_columns(data_frames):
    """Sum and average numerical columns across multiple DataFrames, and keep non-numerical columns unchanged."""
    # Initialize DataFrame to store the summed results for numerical columns
    summed_df = pd.DataFrame()
    non_numerical_df = pd.DataFrame()
    
    for df in data_frames:
        # Identify numerical and non-numerical columns
        numerical_cols = df.select_dtypes(include=[np.number]).columns
        non_numerical_cols = df.select_dtypes(exclude=[np.number]).columns
        
        # Sum numerical columns
        if summed_df.empty:
            summed_df = pd.DataFrame(0, index=range(len(df)), columns=numerical_cols)
        
        summed_df[numerical_cols] = summed_df[numerical_cols].add(df[numerical_cols], fill_value=0)
        
        # Keep non-numerical columns (take the first non-numerical entry for each column)
        if non_numerical_df.empty:
            non_numerical_df = df[non_numerical_cols]
        else:
            non_numerical_df[non_numerical_cols] = non_numerical_df[non_numerical_cols].combine_first(df[non_numerical_cols])
    
    # Divide the summed values by the number of dataframes to get the average
    averaged_df = summed_df / len(data_frames)
    
    # Combine numerical and non-numerical DataFrames
    result_df = pd.concat([averaged_df, non_numerical_df], axis=1)
    
    return result_df

from functools import reduce

import os
import pandas as pd
from functools import reduce

def find_common_rows(allfoldsframe):
    # Define the performance columns that need to be excluded
    performance_columns = [
        'Train_null_model', 'Train_pure_prs', 'Train_best_model',
        'Test_pure_prs', 'Test_null_model', 'Test_best_model'
    ]
    important_columns = [
        'clump_p1',
        'clump_r2',
        'clump_kb',
        'p_window_size',
        'p_slide_size',
        'p_LD_threshold',
        'pvalue',
        'referencepanel',
        'PRSice-2_Model',
        'effectsizes',
     
        'numberofpca',
        'tempalpha',
        'l1weight',
        
        "PlinkLDtype",
        "panprs_n_iter",
        "panprs_z_scale",
        "panprs_len_lim_lambda",
        "panprs_sub_tuning",
        "panprs_len_lambda",
        "panprs_sparse_beta",
        "panprs_parameters_count",
        
    ]
    # Function to remove performance columns from a DataFrame
    def drop_performance_columns(df):
        return df.drop(columns=performance_columns, errors='ignore')
    
    def get_important_columns(df ):
        existing_columns = [col for col in important_columns if col in df.columns]
        if existing_columns:
            return df[existing_columns].copy()
        else:
            return pd.DataFrame()

    # Drop performance columns from all DataFrames in the list
    allfoldsframe_dropped = [drop_performance_columns(df) for df in allfoldsframe]
    
    # Get the important columns.
    allfoldsframe_dropped = [get_important_columns(df) for df in allfoldsframe_dropped]    
    
    # Iteratively find common rows and track unique and common rows
    common_rows = allfoldsframe_dropped[0]
    for i in range(1, len(allfoldsframe_dropped)):
        # Get the next DataFrame
        next_df = allfoldsframe_dropped[i]

        # Count unique rows in the current DataFrame and the next DataFrame
        unique_in_common = common_rows.shape[0]
        unique_in_next = next_df.shape[0]

        # Find common rows between the current common_rows and the next DataFrame
        common_rows = pd.merge(common_rows, next_df, how='inner')
    
        # Count the common rows after merging
        common_count = common_rows.shape[0]

        # Print the unique and common row counts
        print(f"Iteration {i}:")
        print(f"Unique rows in current common DataFrame: {unique_in_common}")
        print(f"Unique rows in next DataFrame: {unique_in_next}")
        print(f"Common rows after merge: {common_count}\n")
    # Now that we have the common rows, extract these from the original DataFrames
 
    extracted_common_rows_frames = []
    for original_df in allfoldsframe:
        # Merge the common rows with the original DataFrame, keeping only the rows that match the common rows
        extracted_common_rows = pd.merge(common_rows, original_df, how='inner', on=common_rows.columns.tolist())
        
        # Add the DataFrame with the extracted common rows to the list
        extracted_common_rows_frames.append(extracted_common_rows)

    # Print the number of rows in the common DataFrames
    for i, df in enumerate(extracted_common_rows_frames):
        print(f"DataFrame {i + 1} with extracted common rows has {df.shape[0]} rows.")

    # Return the list of DataFrames with extracted common rows
    return extracted_common_rows_frames



# Example usage (assuming allfoldsframe is populated as shown earlier):
allfoldsframe = []

# Loop through each file name in the list
for loop in range(0, 5):
    # Check if the file exists in the specified directory for the given fold
    file_path = os.path.join(filedirec, "Fold_" + str(loop), result_directory, "Results.csv")
    if os.path.exists(file_path):
        allfoldsframe.append(pd.read_csv(file_path))
        # Print a message indicating that the file exists
        print("Fold_", loop, "Yes, the file exists.")
    else:
        # Print a message indicating that the file does not exist
        print("Fold_", loop, "No, the file does not exist.")

# Find the common rows across all folds and return the list of extracted common rows
extracted_common_rows_list = find_common_rows(allfoldsframe)
 
# Sum the values column-wise
# For string values, do not sum it the values are going to be the same for each fold.
# Only sum the numeric values.

divided_result = sum_and_average_columns(extracted_common_rows_list)
  
print(divided_result)

 
We have to ensure when we sum the entries across all Folds, the same rows are merged!
Fold_ 0 No, the file does not exist.
Fold_ 1 Yes, the file exists.
Fold_ 2 No, the file does not exist.
Fold_ 3 No, the file does not exist.
Fold_ 4 No, the file does not exist.
DataFrame 1 with extracted common rows has 740 rows.
     clump_p1  clump_r2  clump_kb  p_window_size  p_slide_size  \
0         1.0       0.1     200.0          200.0          50.0   
1         1.0       0.1     200.0          200.0          50.0   
2         1.0       0.1     200.0          200.0          50.0   
3         1.0       0.1     200.0          200.0          50.0   
4         1.0       0.1     200.0          200.0          50.0   
..        ...       ...       ...            ...           ...   
735       1.0       0.1     200.0          200.0          50.0   
736       1.0       0.1     200.0          200.0          50.0   
737       1.0       0.1     200.0          200.0          50.0   
738       1.0       0.1     200.0          200.0          50.0   
739       1.0       0.1     200.0          200.0          50.0   

     p_LD_threshold        pvalue  numberofpca  tempalpha  l1weight  ...  \
0              0.25  1.000000e-10          6.0        0.1       0.1  ...   
1              0.25  3.359818e-10          6.0        0.1       0.1  ...   
2              0.25  1.128838e-09          6.0        0.1       0.1  ...   
3              0.25  3.792690e-09          6.0        0.1       0.1  ...   
4              0.25  1.274275e-08          6.0        0.1       0.1  ...   
..              ...           ...          ...        ...       ...  ...   
735            0.25  7.847600e-03          6.0        0.1       0.1  ...   
736            0.25  2.636651e-02          6.0        0.1       0.1  ...   
737            0.25  8.858668e-02          6.0        0.1       0.1  ...   
738            0.25  2.976351e-01          6.0        0.1       0.1  ...   
739            0.25  1.000000e+00          6.0        0.1       0.1  ...   

     panprs_lambda2  panprs_tau  Train_pure_prs  Train_null_model  \
0               0.0         0.0        0.000031          0.240553   
1               0.0         0.0        0.000026          0.240553   
2               0.0         0.0        0.000031          0.240553   
3               0.0         0.0        0.000030          0.240553   
4               0.0         0.0        0.000029          0.240553   
..              ...         ...             ...               ...   
735             0.0         0.0        0.000004          0.240553   
736             0.0         0.0        0.000003          0.240553   
737             0.0         0.0        0.000002          0.240553   
738             0.0         0.0        0.000001          0.240553   
739             0.0         0.0        0.000001          0.240553   

     Train_best_model  Test_pure_prs  Test_null_model  Test_best_model  \
0            0.244181       0.000173         0.052084         0.080296   
1            0.243971       0.000162         0.052084         0.081526   
2            0.246367       0.000140         0.052084         0.090355   
3            0.247548       0.000130         0.052084         0.097551   
4            0.249614       0.000107         0.052084         0.105807   
..                ...            ...              ...              ...   
735          0.299308       0.000009         0.052084         0.243056   
736          0.300650       0.000006         0.052084         0.246289   
737          0.300650       0.000004         0.052084         0.246289   
738          0.300650       0.000002         0.052084         0.246289   
739          0.354587       0.000002         0.052084         0.350764   

     PlinkLDtype  panprs_sparse_beta  
0              r               False  
1              r               False  
2              r               False  
3              r               False  
4              r               False  
..           ...                 ...  
735            r               False  
736            r               False  
737            r               False  
738            r               False  
739            r               False  

[740 rows x 27 columns]

Results#

1. Reporting Based on Best Training Performance:#

  • One can report the results based on the best performance of the training data. For example, if for a specific combination of hyperparameters, the training performance is high, report the corresponding test performance.

  • Example code:

    df = divided_result.sort_values(by='Train_best_model', ascending=False)
    print(df.iloc[0].to_markdown())
    

Binary Phenotypes Result Analysis#

You can find the performance quality for binary phenotype using the following template:

PerformanceBinary

This figure shows the 8 different scenarios that can exist in the results, and the following table explains each scenario.

We classified performance based on the following table:

Performance Level

Range

Low Performance

0 to 0.5

Moderate Performance

0.6 to 0.7

High Performance

0.8 to 1

You can match the performance based on the following scenarios:

Scenario

What’s Happening

Implication

High Test, High Train

The model performs well on both training and test datasets, effectively learning the underlying patterns.

The model is well-tuned, generalizes well, and makes accurate predictions on both datasets.

High Test, Moderate Train

The model generalizes well but may not be fully optimized on training data, missing some underlying patterns.

The model is fairly robust but may benefit from further tuning or more training to improve its learning.

High Test, Low Train

An unusual scenario, potentially indicating data leakage or overestimation of test performance.

The model’s performance is likely unreliable; investigate potential data issues or random noise.

Moderate Test, High Train

The model fits the training data well but doesn’t generalize as effectively, capturing only some test patterns.

The model is slightly overfitting; adjustments may be needed to improve generalization on unseen data.

Moderate Test, Moderate Train

The model shows balanced but moderate performance on both datasets, capturing some patterns but missing others.

The model is moderately fitting; further improvements could be made in both training and generalization.

Moderate Test, Low Train

The model underperforms on training data and doesn’t generalize well, leading to moderate test performance.

The model may need more complexity, additional features, or better training to improve on both datasets.

Low Test, High Train

The model overfits the training data, performing poorly on the test set.

The model doesn’t generalize well; simplifying the model or using regularization may help reduce overfitting.

Low Test, Low Train

The model performs poorly on both training and test datasets, failing to learn the data patterns effectively.

The model is underfitting; it may need more complexity, additional features, or more data to improve performance.

Recommendations for Publishing Results#

When publishing results, scenarios with moderate train and moderate test performance can be used for complex phenotypes or diseases. However, results showing high train and moderate test, high train and high test, and moderate train and high test are recommended.

For most phenotypes, results typically fall in the moderate train and moderate test performance category.

Continuous Phenotypes Result Analysis#

You can find the performance quality for continuous phenotypes using the following template:

PerformanceContinous

This figure shows the 8 different scenarios that can exist in the results, and the following table explains each scenario.

We classified performance based on the following table:

Performance Level

Range

Low Performance

0 to 0.2

Moderate Performance

0.3 to 0.7

High Performance

0.8 to 1

You can match the performance based on the following scenarios:

Scenario

What’s Happening

Implication

High Test, High Train

The model performs well on both training and test datasets, effectively learning the underlying patterns.

The model is well-tuned, generalizes well, and makes accurate predictions on both datasets.

High Test, Moderate Train

The model generalizes well but may not be fully optimized on training data, missing some underlying patterns.

The model is fairly robust but may benefit from further tuning or more training to improve its learning.

High Test, Low Train

An unusual scenario, potentially indicating data leakage or overestimation of test performance.

The model’s performance is likely unreliable; investigate potential data issues or random noise.

Moderate Test, High Train

The model fits the training data well but doesn’t generalize as effectively, capturing only some test patterns.

The model is slightly overfitting; adjustments may be needed to improve generalization on unseen data.

Moderate Test, Moderate Train

The model shows balanced but moderate performance on both datasets, capturing some patterns but missing others.

The model is moderately fitting; further improvements could be made in both training and generalization.

Moderate Test, Low Train

The model underperforms on training data and doesn’t generalize well, leading to moderate test performance.

The model may need more complexity, additional features, or better training to improve on both datasets.

Low Test, High Train

The model overfits the training data, performing poorly on the test set.

The model doesn’t generalize well; simplifying the model or using regularization may help reduce overfitting.

Low Test, Low Train

The model performs poorly on both training and test datasets, failing to learn the data patterns effectively.

The model is underfitting; it may need more complexity, additional features, or more data to improve performance.

Recommendations for Publishing Results#

When publishing results, scenarios with moderate train and moderate test performance can be used for complex phenotypes or diseases. However, results showing high train and moderate test, high train and high test, and moderate train and high test are recommended.

For most continuous phenotypes, results typically fall in the moderate train and moderate test performance category.

2. Reporting Generalized Performance:#

  • One can also report the generalized performance by calculating the difference between the training and test performance, and the sum of the test and training performance. Report the result or hyperparameter combination for which the sum is high and the difference is minimal.

  • Example code:

    df = divided_result.copy()
    df['Difference'] = abs(df['Train_best_model'] - df['Test_best_model'])
    df['Sum'] = df['Train_best_model'] + df['Test_best_model']
    
    sorted_df = df.sort_values(by=['Sum', 'Difference'], ascending=[False, True])
    print(sorted_df.iloc[0].to_markdown())
    

3. Reporting Hyperparameters Affecting Test and Train Performance:#

  • Find the hyperparameters that have more than one unique value and calculate their correlation with the following columns to understand how they are affecting the performance of train and test sets:

    • Train_null_model

    • Train_pure_prs

    • Train_best_model

    • Test_pure_prs

    • Test_null_model

    • Test_best_model

4. Other Analysis#

  1. Once you have the results, you can find how hyperparameters affect the model performance.

  2. Analysis, like overfitting and underfitting, can be performed as well.

  3. The way you are going to report the results can vary.

  4. Results can be visualized, and other patterns in the data can be explored.

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib notebook

import matplotlib
import numpy as np
import matplotlib.pyplot as plt

df = divided_result.sort_values(by='Train_best_model', ascending=False)
print("1. Reporting Based on Best Training Performance:\n")
print(df.iloc[0].to_markdown())


 
df = divided_result.copy()

# Plot Train and Test best models against p-values
plt.figure(figsize=(10, 6))
plt.plot(df['pvalue'], df['Train_best_model'], label='Train_best_model', marker='o', color='royalblue')
plt.plot(df['pvalue'], df['Test_best_model'], label='Test_best_model', marker='o', color='darkorange')

# Highlight the p-value where both train and test are high
best_index = df[['Train_best_model']].sum(axis=1).idxmax()
best_pvalue = df.loc[best_index, 'pvalue']
best_train = df.loc[best_index, 'Train_best_model']
best_test = df.loc[best_index, 'Test_best_model']

# Use dark colors for the circles
plt.scatter(best_pvalue, best_train, color='darkred', s=100, label=f'Best Performance (Train)', edgecolor='black', zorder=5)
plt.scatter(best_pvalue, best_test, color='darkblue', s=100, label=f'Best Performance (Test)', edgecolor='black', zorder=5)

# Annotate the best performance with p-value, train, and test values
plt.text(best_pvalue, best_train, f'p={best_pvalue:.4g}\nTrain={best_train:.4g}', ha='right', va='bottom', fontsize=9, color='darkred')
plt.text(best_pvalue, best_test, f'p={best_pvalue:.4g}\nTest={best_test:.4g}', ha='right', va='top', fontsize=9, color='darkblue')

# Calculate Difference and Sum
df['Difference'] = abs(df['Train_best_model'] - df['Test_best_model'])
df['Sum'] = df['Train_best_model'] + df['Test_best_model']

# Sort the DataFrame
sorted_df = df.sort_values(by=['Sum', 'Difference'], ascending=[False, True])
#sorted_df = df.sort_values(by=[ 'Difference','Sum'], ascending=[  True,False])

# Highlight the general performance
general_index = sorted_df.index[0]
general_pvalue = sorted_df.loc[general_index, 'pvalue']
general_train = sorted_df.loc[general_index, 'Train_best_model']
general_test = sorted_df.loc[general_index, 'Test_best_model']

plt.scatter(general_pvalue, general_train, color='darkgreen', s=150, label='General Performance (Train)', edgecolor='black', zorder=6)
plt.scatter(general_pvalue, general_test, color='darkorange', s=150, label='General Performance (Test)', edgecolor='black', zorder=6)

# Annotate the general performance with p-value, train, and test values
plt.text(general_pvalue, general_train, f'p={general_pvalue:.4g}\nTrain={general_train:.4g}', ha='left', va='bottom', fontsize=9, color='darkgreen')
plt.text(general_pvalue, general_test, f'p={general_pvalue:.4g}\nTest={general_test:.4g}', ha='left', va='top', fontsize=9, color='darkorange')

# Add labels and legend
plt.xlabel('p-value')
plt.ylabel('Model Performance')
plt.title('Train vs Test Best Models')
plt.legend()
plt.show()
 




print("2. Reporting Generalized Performance:\n")
df = divided_result.copy()
df['Difference'] = abs(df['Train_best_model'] - df['Test_best_model'])
df['Sum'] = df['Train_best_model'] + df['Test_best_model']
sorted_df = df.sort_values(by=['Sum', 'Difference'], ascending=[False, True])
print(sorted_df.iloc[0].to_markdown())


print("3. Reporting the correlation of hyperparameters and the performance of 'Train_null_model', 'Train_pure_prs', 'Train_best_model', 'Test_pure_prs', 'Test_null_model', and 'Test_best_model':\n")

print("3. For string hyperparameters, we used one-hot encoding to find the correlation between string hyperparameters and 'Train_null_model', 'Train_pure_prs', 'Train_best_model', 'Test_pure_prs', 'Test_null_model', and 'Test_best_model'.")

print("3. We performed this analysis for those hyperparameters that have more than one unique value.")

correlation_columns = [
 'Train_null_model', 'Train_pure_prs', 'Train_best_model',
 'Test_pure_prs', 'Test_null_model', 'Test_best_model'
]

hyperparams = [col for col in divided_result.columns if len(divided_result[col].unique()) > 1]
hyperparams = list(set(hyperparams+correlation_columns))
 
# Separate numeric and string columns
numeric_hyperparams = [col for col in hyperparams if pd.api.types.is_numeric_dtype(divided_result[col])]
string_hyperparams = [col for col in hyperparams if pd.api.types.is_string_dtype(divided_result[col])]


# Encode string columns using one-hot encoding
divided_result_encoded = pd.get_dummies(divided_result, columns=string_hyperparams)

# Combine numeric hyperparams with the new one-hot encoded columns
encoded_columns = [col for col in divided_result_encoded.columns if col.startswith(tuple(string_hyperparams))]
hyperparams = numeric_hyperparams + encoded_columns
 

# Calculate correlations
correlations = divided_result_encoded[hyperparams].corr()
 
# Display correlation of hyperparameters with train/test performance columns
hyperparam_correlations = correlations.loc[hyperparams, correlation_columns]
 
hyperparam_correlations = hyperparam_correlations.fillna(0)

# Plotting the correlation heatmap
plt.figure(figsize=(12, 8))
ax = sns.heatmap(hyperparam_correlations, annot=True, cmap='viridis', fmt='.2f', cbar=True)
ax.set_xticklabels(ax.get_xticklabels(), rotation=90, ha='right')

# Rotate y-axis labels to horizontal
#ax.set_yticklabels(ax.get_yticklabels(), rotation=0, va='center')

plt.title('Correlation of Hyperparameters with Train/Test Performance')
plt.show() 

sns.set_theme(style="whitegrid")  # Choose your preferred style
pairplot = sns.pairplot(divided_result_encoded[hyperparams],hue = 'Test_best_model', palette='viridis')

# Adjust the figure size
pairplot.fig.set_size_inches(15, 15)  # You can adjust the size as needed

for ax in pairplot.axes.flatten():
    ax.set_xlabel(ax.get_xlabel(), rotation=90, ha='right')  # X-axis labels vertical
    #ax.set_ylabel(ax.get_ylabel(), rotation=0, va='bottom')  # Y-axis labels horizontal

# Show the plot
plt.show()
1. Reporting Based on Best Training Performance:

|                         | 739                    |
|:------------------------|:-----------------------|
| clump_p1                | 1.0                    |
| clump_r2                | 0.1                    |
| clump_kb                | 200.0                  |
| p_window_size           | 200.0                  |
| p_slide_size            | 50.0                   |
| p_LD_threshold          | 0.25                   |
| pvalue                  | 1.0                    |
| numberofpca             | 6.0                    |
| tempalpha               | 0.1                    |
| l1weight                | 0.1                    |
| panprs_n_iter           | 1000.0                 |
| panprs_z_scale          | 1.0                    |
| panprs_len_lim_lambda   | 20.0                   |
| panprs_sub_tuning       | 20.0                   |
| panprs_len_lambda       | 20.0                   |
| panprs_parameters_count | 37.0                   |
| panprs_lambda1          | 1.28716074962245       |
| panprs_lambda2          | 0.0                    |
| panprs_tau              | 0.0                    |
| Train_pure_prs          | 1.111950025722841e-06  |
| Train_null_model        | 0.2405533260170076     |
| Train_best_model        | 0.3545873590118638     |
| Test_pure_prs           | 2.1046182056005942e-06 |
| Test_null_model         | 0.05208368251068       |
| Test_best_model         | 0.3507637420060079     |
| PlinkLDtype             | r                      |
| panprs_sparse_beta      | False                  |
2. Reporting Generalized Performance:

|                         | 739                    |
|:------------------------|:-----------------------|
| clump_p1                | 1.0                    |
| clump_r2                | 0.1                    |
| clump_kb                | 200.0                  |
| p_window_size           | 200.0                  |
| p_slide_size            | 50.0                   |
| p_LD_threshold          | 0.25                   |
| pvalue                  | 1.0                    |
| numberofpca             | 6.0                    |
| tempalpha               | 0.1                    |
| l1weight                | 0.1                    |
| panprs_n_iter           | 1000.0                 |
| panprs_z_scale          | 1.0                    |
| panprs_len_lim_lambda   | 20.0                   |
| panprs_sub_tuning       | 20.0                   |
| panprs_len_lambda       | 20.0                   |
| panprs_parameters_count | 37.0                   |
| panprs_lambda1          | 1.28716074962245       |
| panprs_lambda2          | 0.0                    |
| panprs_tau              | 0.0                    |
| Train_pure_prs          | 1.111950025722841e-06  |
| Train_null_model        | 0.2405533260170076     |
| Train_best_model        | 0.3545873590118638     |
| Test_pure_prs           | 2.1046182056005942e-06 |
| Test_null_model         | 0.05208368251068       |
| Test_best_model         | 0.3507637420060079     |
| PlinkLDtype             | r                      |
| panprs_sparse_beta      | False                  |
| Difference              | 0.0038236170058558727  |
| Sum                     | 0.7053511010178717     |
3. Reporting the correlation of hyperparameters and the performance of 'Train_null_model', 'Train_pure_prs', 'Train_best_model', 'Test_pure_prs', 'Test_null_model', and 'Test_best_model':

3. For string hyperparameters, we used one-hot encoding to find the correlation between string hyperparameters and 'Train_null_model', 'Train_pure_prs', 'Train_best_model', 'Test_pure_prs', 'Test_null_model', and 'Test_best_model'.
3. We performed this analysis for those hyperparameters that have more than one unique value.