Skip to content

Repository for the details of my work in the Google Summer Of Code 2024 with the INCF organisation

Notifications You must be signed in to change notification settings

AdityaPandeyCN/GSOC2024_INCF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 

Repository files navigation

Google Summer Of Code 2024_INCF

Repository for the details of my work in the Google Summer Of Code 2024 with the INCF organisation

Mentee: Aditya Pandey
Mentors: Ankur Sinha, Padraig Gleeson
Organization: INCF
Project Name: Implementation of SWC to NeuroML converter in PyNeuroML

This readme file will contain details about my work that I have done throughout my GSoC period with the INCF organisation. I have also blogged about my journey and challenges in my personal blog here Aditya's Blog

Project Overview

My goal was to make a Python Based SWC to NeuroML Converter. With the instruction from my mentors I divided my task into two parts which was trying to make a Python program to Load the SWC format and then a second one to do the conversion.

The converter was tested against many SWC files from Neuromorpho.org and some major cells from Allen Institute database

SWC to NeuroML Converter: Development and Testing

1. SWC Loader Module

  • SWCNode Class: Represents individual nodes (ID, type, coordinates, radius, parent ID)
  • SWCGraph Class: Represents entire SWC structure, with methods for node manipulation
  • load_swc Function: Reads SWC file, creates SWCGraph object
  • Utility Functions: Parsing headers, error handling, logging

2. NeuroML Export Module

  • NeuroMLWriter Class: Converts SWC graph to NeuroML format
  • Key Features:
    1. Soma handling (NeuroMorpho.Org v5.3 guidelines)
    2. Segment grouping (soma, axon, dendrites)
    3. Metadata preservation
    4. Error handling & logging

3. Testing

  • SWC Loader: Node initialization, graph operations, metadata handling
  • NeuroML Export: Conversion validation, element checks, error handling
  • Methodology: Temporary file usage, real-world data validation

Link to SWC loader file

Pull Requests

Merged Pull Requests

Here's a list of significant PRs that have been merged:

  1. Initial implementation of SWC loader
    • Added SWCNode and SWCGraph classes
    • Implemented basic file parsing functionality
  2. SWC export module and test module
    • Adds function to export SWC graph to a new SWC file
    • Adds tests to verify if generated file and input file are similar

Significant Pull Request Awaiting Approval

This crucial PR introduces the core functionality for converting SWC to NeuroML format. It is currently under review and pending approval.

  • Adds ExportNML module which creates NeuroML files
  • Adds test module which tests for Soma handling cases
  • Implements NeuroMLWriter class for SWC to NeuroML conversion
  • Handles different neuron segment types and creates appropriate segment groups

Status:Approved(with some major tweaks from my mentor)Ankur Sinha

Export Module:The export module can be accessed here

Importance: This PR is critical for the project as it implements the core export functionality, enabling the conversion of SWC files to NeuroML format.

These Pull Requests represent significant steps in the development of the SWC to NeuroML converter. They showcase the iterative process of building, testing, and refining the tool throughout the Google Summer of Code period. The pending PR for the NeuroML Export Module is particularly crucial as it completes the primary functionality of the converter.

About

Repository for the details of my work in the Google Summer Of Code 2024 with the INCF organisation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published