Contributors Forks Stargazers Issues MIT License

MedAssociates to CSV file

A simple way to parse MedAssociate output file in tidy data :
  • 1 row = 1 observation
  • 1 col = 1 var

Explore the docs »

View Demo ·
Report Bug ·
Request Feature

Table of Contents

  1. About The Project

  2. Getting Started

  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

This program parses MedAssociates data files and transforms them into tidy csv files, containing the information selected by the user

(back to top)

Built With

(back to top)

Getting Started

To get a local copy up and running follow these simple steps.


This is an example of how to list things you need to use the software and how to install them.

  • pip

    pip install numpy argparse pyaml pandas
    pip install Gooey #For graphical interface


  1. Clone the repository

    git clone
  2. Install the required packages

    pip install numpy argparse yaml pandas
    pip install Gooey #For graphical interface

(back to top)

Make Executable

To make a gui onefile executable run these commands in terminal.

cd path/to/directory_of_git_clone
pyinstaller build_gui.spec

To make a cli onefile executable run these commands in terminal.

cd path/to/directory_of_git_clone
pyinstaller build_cli.spec


Graphical User Interface

Run the application and follow the steps on the interface


Command Line Interface

The software runs on the experiment directory that contains the directories containing the raw data files or on the file itself and returns a csv file

./ path_to_medassociate_file config_file.yml output_csv_file

Config file

The config file is a necessary file that specifies the setup of your data to the software.
You can find as an example the config.yml which contains all possibilities of setup.
You can mix 1 col file dir and annotated directory file in experiment dir.

  1. There are three types of parameters:
    • info_col : One column file
    • info_lab : annotated file
    • options : further options
  2. For the first two types of parameters.
    You need to indicate the information in this format: “Key : Value”

    • Keys are the column names that you want in the output file
    • Values are:
      • for infos_col: row number – 1 (Start index :0)
      • for infos_lab: letters used in medAssociate exercise
      • for infos_opt: (see next point)
  3. Options:
    • remove_zero_ending : True or False to keep or remove Zeros at the end of arrays
    • Cut : for cutting an output on a special character usually a dot into 2 columns. The value must be a list of list of 4 elements :
      • key to cut
      • separator usually the dot character
      • Col names of first sub-element
      • Col names of second sub-element
    • Eval : for some columns the values must be the result of a Python command line (e.g to get information in a path). It must be a python dictionary with Key as column name and value a short command line as a string.
  4. The following Keys are med associate keywords only usable with annotated file :
    • Start Date (automatically added)
    • End Date
    • Subject
    • Experiment
    • Group
    • Box
    • Start Time (automatically added)
    • End Time
    • MSN: Medassociate exercice names


Templates are available in the config.yml file

(back to top)


  • Add possibility for annotated file to not specify the YAML file and use YAML in parameter path with the same
    names as MPC name obtained from MSN []

(back to top)


Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have any suggestion that would improve this software, please fork the repository and create a pull request. You can also simply open an issue with the tag “enhancement”.
Don’t forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)


Distributed under the GPL v3.0 License. See LICENSE.txt for more information.

(back to top)


Project Link:

(back to top)


(back to top)


View Github