[Eeglablist] Subject: Collaboration Opportunity: EEG Analysis in Schizophrenia vs. Healthy Controls

נתי שטרן nsh531 at gmail.com
Thu Aug 14 22:21:58 PDT 2025


Dear EEGLAB community,

I am currently developing *Java-based tools* for the analysis of *clinical
EEG data*, specifically comparing *schizophrenia patient recordings against
healthy control groups*. The goal is to build *robust, reproducible
pipelines* for preprocessing, feature extraction, statistical analysis, and
machine learning-based classification to support psychiatric research and
potential clinical applications.

We are particularly interested in expertise from researchers experienced
with:

   -

   EEGLAB plugins and workflows for preprocessing, artifact rejection, and
   feature extraction.
   -

   High-density and wearable EEG systems across multiple channels.
   -

   Integrating machine learning pipelines (classification, feature
   selection, cross-validation) into EEG analysis.
   -

   Handling *clinical datasets*, particularly de-identified schizophrenia
   vs. healthy control EEG recordings.

To illustrate the workflow in Java, here is a simple example using *EEG
feature extraction and classification* with Weka:

import weka.classifiers.trees.RandomForest;
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
import weka.filters.Filter;
import weka.filters.unsupervised.attribute.Standardize;

public class EEGClassifier {

    public static void main(String[] args) throws Exception {
        // Load dataset (e.g., features extracted from EEG epochs)
        DataSource source = new DataSource("eeg_features.arff");
        Instances data = source.getDataSet();

        // Set class index (last attribute is the label: 0 = control,
1 = schizophrenia)
        if (data.classIndex() == -1)
            data.setClassIndex(data.numAttributes() - 1);

        // Standardize features
        Standardize standardize = new Standardize();
        standardize.setInputFormat(data);
        Instances standardizedData = Filter.useFilter(data, standardize);

        // Split into training and test sets
        int trainSize = (int) Math.round(standardizedData.numInstances() * 0.8);
        int testSize = standardizedData.numInstances() - trainSize;
        Instances train = new Instances(standardizedData, 0, trainSize);
        Instances test = new Instances(standardizedData, trainSize, testSize);

        // Train classifier
        RandomForest rf = new RandomForest();
        rf.setNumTrees(100);
        rf.buildClassifier(train);

        // Evaluate on test set
        int correct = 0;
        for (int i = 0; i < test.numInstances(); i++) {
            double pred = rf.classifyInstance(test.instance(i));
            if (pred == test.instance(i).classValue()) correct++;
        }

        double accuracy = 100.0 * correct / test.numInstances();
        System.out.println("Test set accuracy: " + accuracy + "%");
    }
}

This workflow can be extended to include:

   -

   *Time-domain, frequency-domain, and nonlinear features*
   -

   *Cross-validation and hyperparameter tuning*
   -

   Integration with *EEGLAB preprocessing outputs* via exported feature
   files (.mat or .csv)

If you have experience with *relevant clinical EEG datasets*, or have
developed EEGLAB tools for similar purposes, I would greatly appreciate the
opportunity to discuss potential collaboration, share ideas, and explore
methodological alignment.

Please feel free to reach out at *nsh531 at gmail.com <nsh531 at gmail.com>* for
more details about the project and Java-based analysis pipelines.

Thank you for your time and consideration. I look forward to connecting
with members of the EEGLAB community who have relevant expertise.

Best regards,
Netanel


More information about the eeglablist mailing list