Parse error when trying to use compiled mechanisms

Post Reply
costas

Parse error when trying to use compiled mechanisms

Post by costas »

Hi

I have problems initializing my simulation that has some additional membrane mechanisms (included using NMODL). I am using Mac OS 10.4 and NEURON 6.2.

More specifically, I drag the folder with the mod.-files on `mknrndll' that successfully compiles all mechanisms. Thus, I assume that all mechanisms are coded correctly. But, when I want to insert these mechanisms (let's say mechanism xyz.mod) in specific regions on an anatomically detailed neuron using hoc.-code (let's say: `insert xyz') I receive a parse error as if the simulator does not see/recognize mechanism xyz. I placed the mod-files in the same directory as the hoc-codes calling these mechanisms so I don't think it's a path issue.

Would anybody have any suggestion how to overcome this issue?

Thanks a lot!
hines
Site Admin
Posts: 1600
Joined: Wed May 18, 2005 3:32 pm

Re: Parse error when trying to use compiled mechanisms

Post by hines »

Did dragging the folder containing the mod and hoc files create a umac directory?
When you launched neuron did you see a line after the banner stating "loading
membrane mechanisms..." and a list of loaded mod files? Does one of the
mod files declare SUFFIX xyz?
costas

Re: Parse error when trying to use compiled mechanisms

Post by costas »

Dear Michael

Thanks for the reply. Well, when I drag-drop the folder with the .hoc and .mod files on `mknrndll' the `umac' folder is created. Moreover, all mechanisms are compiled and at the end of the compilation I receive the message `

Code: Select all

Successfully created umac/special
'. Upon compilation, in the `umac'-folder, all .mod-files have resulted in .c- and .lo-codes.

I am not sure I saw the `loading mechanisms'-message when initializing NEURON though (after compiling the .mod-files). Am I supposed to see that when initializing NEURON? The I initialize NEURON is through a script with a series of commands that call (1) nrngui and (2) the scripts that control the simulation:

Code: Select all

load_file("nrngui.hoc")
load_file("hoc/src/refs.hoc") 
load_file("cells/d151.hoc") 
load_file("hoc/src/file_util.hoc") 
load_file("hoc/src/main.hoc")
Furthermore, all mechanisms that I introduced using NMODL include explicitly the mechanism-name using SUFFIX, i.e., SUFFIX xyz.

I assumed that upon compilation these mechanisms are uploaded and immediately retrievable by NEURON. Obviously, I am missing something... Maybe the way I initialize the simulation is wrong...

Thanks so much!

Costas
costas

Re: Parse error when trying to use compiled mechanisms

Post by costas »

In addition to my previous Email: the mechanisms are not loaded after initializing NEURON. In the GUI I only see mechanisms `pas' and `hh' and none of the mechanisms I defined with the NMODL codes.

Best, Costas
costas

Re: Parse error when trying to use compiled mechanisms

Post by costas »

Hi

I found the problem regarding the `parse'-error I was receiving.

Although I successfully compiled all .mod-files (which were in the same folder as the .hoc-routines calling them) I initialized the simulation outside this folder. Obviously, some path is being set in this process. Because the initialization-code was not in the folder containing the .hoc- and .mod-files, NEURON was not uploading the compiled procedures. When I initialized inside the folder, NEURON successfully uploaded all procedures and initialized the simulation.

Best, Costas
ted
Site Admin
Posts: 5784
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Parse error when trying to use compiled mechanisms

Post by ted »

If you compile mod files in a particular directory, NEURON will automatically find and load the compiled mechanisms if you start NEURON with that directory as the current working directory. If you start NEURON with some other directory as the current working directory, and want it to find the compiled mechanisms, there is a command line option that you can use a want NEURON to load mechanisms that had been compiled elsewhere, you must use a command line switch to tell NEURON where to look.

For a list of command line switches, run
nrniv -help
from a system prompt in an xterm. Here is the list as of today 3/3/2009 for NEURON compiled with python and numpy:

Code: Select all

nrniv [options] [fileargs]
  options:
    -dll filename    dynamically load the linked mod files.
    -h               print this help message
    -help            print this help message
    -isatty          unbuffered stdout, print prompt when waiting for stdin
    -mpi             launched by mpirun or mpiexec, in parallel environment
    -mswin_scale float   scales gui on screen
    -NSTACK integer  size of stack (default 1000)
    -NFRAME integer  depth of function call nesting (default 200)
    -nobanner        do not print startup banner
    -nogui           do not send any gui info to screen
    -notatty         buffered stdout and no prompt
    -python          Python is the interpreter
    -realtime        For hard real-time simulation for dynamic clamp
    --version        print version info
    and all InterViews and X11 options
  fileargs:          any number of following
    -                input from stdin til ^D (end of file)
    -c "statement"    execute next statement
    filename         execute contents of filename
Post Reply