Giter VIP home page Giter VIP logo

bhallalab / moose Goto Github PK

View Code? Open in Web Editor NEW
24.0 16.0 19.0 20.96 MB

MOOSE simulator.

Home Page: http://moose.ncbs.res.in

License: GNU General Public License v3.0

CMake 0.80% Shell 0.38% Makefile 0.01% C++ 37.94% HTML 0.20% Python 36.27% C 0.04% XSLT 7.36% OpenEdge ABL 2.56% GAP 14.26% Haskell 0.01% Jupyter Notebook 0.09% Tcl 0.03% Ruby 0.04% GDB 0.01% Dockerfile 0.02%
moose moose-simulator neuroscience neural-simulator

moose's People

Contributors

asiaszmek avatar aviralg avatar dhruva-storz avatar dilawar avatar hrani avatar keszybz avatar malav4994 avatar upibhalla avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moose's Issues

indexing for element[0] is inconsistent

Indexing of element0 should be equivalent to ‘element’. Currently we have

create neutral foo0

showfield foo0 * // works
showfield foo * // fails

Also there seem to be issues when foo0 is created using a simundump.

Reported by: upibhalla

Neardiff way too lenient

In the case of the Kholodenko regression test, neardiff lets the comparison through. However, a graphical plot reveals that the curves differ widely.

Reported by: niraj_

"step" oversteps

If “step” is issued without arguments, the scheduler advances time by either 1 or 2 steps.

Can’t think of a simple script to reproduce this problem (“getstat” is not working).

This problem was discovered in a script that looked like this:

for ( i = 0; i < 3000; i = i + 1 )
step
end

A plot object was connected to a compartment, and stored around 4500 points in the output file. In particular, the very first call of “step” steps twice. Subsequently, the system alternates between behaving and misbehaving according to some pattern (did not investigate).

Should also check if “step” behaves well for all integer arguments.

Reported by: niraj_

a case when setfield ^ gives seg fault

create compartment c
create compartment c
<Error: Neutral::create: Attempt to overwrite existing element ‘/c’. Using original.>
setfield ^ x 10
<Segmentation Fault>

Reported by: raameshd

Proper error msgs in addmsg

create Compartment c
addmsg c/channel h/channel
<Error in doAdd c1/channel h/channel>
Instead it should print <unknown object h> or <h not found> something like that.

Reported by: raameshd

Script language shell lacks in-line editing and history

The MOOSE SLI command-line interface does not handle all the nice features of the GENESIS command-line interface, like control-P for previous command and in-line text editing. This is a hard one to fix because it would involve implementing a lot of operations, and also we would need ncurses or something similar, which is not terribly portable.

Reported by: upibhalla

Pool does not convert concentration SUMTOTAL inputs

In legacy kkit models, it is possible to send a SLAVE message to a molecule with a concentration value. This requires the molecule to convert it to ‘n’ values. MOOSE uses SUMTOTALS to handle slave messages, but in this case fails to do the conversion from conc to ‘n’. This problem affects Molecule.cpp as well as KineticHub.cpp.

Likely to be rather rare, only used in kkit.

Reported by: upibhalla

SIMPATH environment not handled in MOOSE

The SIMPATH variable in GENESIS is used to tell the system which directories to search in. MOOSE does not handle this, and as a result scripts with default directories (like kkit dependent scripts) do not work unless the required files are in the working directory.

Reported by: upibhalla

CLI copy doesn't like absolute path

The command:
copy /library/cc /cell/cc
copies cc under root element.

However:
ce /
copy /library/cc cell/cc
works.

File: copy_absolute.g

Reported by: niraj_

randnum directory should not be nested

In the MOOSE build tree, we have the utility directory, and then within it the randnum directory. This organization messes up the compilation unless the randnum directory is last. This is because the loop for building subdirectories assumes that all are just under the main MOOSE code directory. The randnum directory should be brought down to the same level as the others.

Reported by: upibhalla

Spurious startup error messages

The following lines appear on stderr on startup:
ERROR: failed to open property file: config.xml
ERROR: PropertyReader::getProperty( AutoSchedule ) :: No such key exists in property map.
ERROR: PropertyReader::getProperty( CreateSolver ) :: No such key exists in property map.

Should be handled quietly or go to stdout at most.

Reported by: upibhalla

invalid iterator dereferencing causes program abortion

On stepping trough the execution it was found that vector< Conn >::const_iterator SimpleElement::connDestEnd( unsigned int dest ) const

returns an iterator which is not dereferancable. In method void DestFinfo::dropAll( Element* e ) const this iterator is being dereference and this causes an assertion failure, causing program termination.
Below is the call stack in Visual Studio 2005 version 8.0.50727.42 with Microsoft .NET Framework version 2.0.50727:

> moose.exe!DestFinfo::dropAll(Element * e=0×00566918) Line 65 C++
moose.exe!ClockJob::clearMessages(Element * e=0×00566918) Line 408 + 0×2f bytes C++
moose.exe!ClockJob::reschedFuncLocal(Element * e=0×005666d8) Line 369 + 0×21 bytes C++
moose.exe!ClockJob::reschedFunc(const Conn & c={…}) Line 320 C++
moose.exe!set(Element * e=0×005666d8, const Finfo * f=0×00556d60) Line 30 + 0×13 bytes C++
moose.exe!set(Element * e=0×005666d8, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & f=“resched”) Line 45 + 0×7 bytes C++
moose.exe!testSchedProcess() Line 334 + 0×3f bytes C++
msvcp80.dll!7c44f3e5()
[Frames below may be incorrect and/or missing, no symbols loaded for msvcp80.dll]
moose.exe!set<int>(Element * e=0×00000000, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & f={…}, int v=-1479030319) Line 50 + 0xc bytes C++
moose.exe!testSched() Line 164 + 0×10 bytes C++
msvcr80.dll!78159301()
msvcp80.dll!7c42319e()
moose.exe!main(int argc=1, char * * argv=0×00355728) Line 88 C++
moose.exe!__tmainCRTStartup() Line 586 + 0×17 bytes C
kernel32.dll!7c816d4f()
kernel32.dll!7c8399f3()

Reported by: subhacom

showmsg causes assertion failure

The showmsg command on a newly created object causes assertion failure. An example session:

moose #1 > create compartment /c
moose #2 > showmsg /c
INCOMING MESSAGES onto /c
moose: SimpleElement.cpp:196: virtual const Msg* SimpleElement::msg(unsigned int) const: Assertion `msgNum < msg_.size()’ failed.
Aborted (core dumped)

Reported by: subhacom

"sendback" calls wrong function

“sendback” seems to consider only the first message in the linked list of messages. This means a callback will always invoke the RecvFunc from a single class, even if the callback request came from an object of another class.

Might the same problem exist in “sendTo” as well?

Reported by: niraj_

loss of precision in floating point arithmatic

In floating point arithmetic, the result calculated is sometimes lacks in precision. In the following example, the precision loss is quite severe:

moose #7> echo { 10.0*2e-5/(3.141592*1.5*1.5e-10) }
282942

whereas the correct result is: 28294.217991670746

Reported by: subhacom

ld: cannot find -lm during compilation

> I am compiling moose on Fedora Core 8 and getting following error message
> ld: cannot find -lm
> make1: * [randnum.o] Error 1
> make1: leaving directory ‘/root/moose-beta-1.0.0.src/utility/randnum’
> All libs compiled
> make: *
No rule to make target ‘utility/utility.o’, needed by moose.
> stop

Reported by: Shesharao M. Wanjerkhede

Reported by: subhacom

showmsg shows incoming and outgoing message

showmsg <object> shows same messages under the incoming header and the outgoing header. The listMessages function in Shell.cpp does not use the parameter bool isIncoming anymore. So it returns a list of both incoming messages and outgoing messages.

Reported by: subhacom

'pushe' does not update cwe

Element stack doesn’t work. Current working element stays unchanged. Showfield leads to segmentation fault.

File: TESTS/bugs/elstack.g

Reported by: niraj_

Crashes if nonexistent script file given.

MOOSE crashes if it is started up with an argument of a nonexistent script file. Also in the ‘include’ statement if a nonexistent script file name is used. Error message claims double free or corruption.

Reported by: upibhalla

Readcell cannot handle names like 'axon[1]'

Refer to TESTS/regression/moose_readcell.g

Compartment names like axon1 are not handled properly. The reason is that ‘axon1’ is assumed to exist because ‘axon’ does (in this particular example). Go to ReadCell.cpp:298 in revision 450.

Reported by: niraj_

Problems loading .p file

These files are generated by neuroConstruct. Rm and Cm aren’t being picked up from attached *.p file. Error on readcell:

Warning: Ignored attempt to set Ra of compartment Soma to less than 1e-15
Warning: Ignored attempt to set Cm of compartment Soma to less than 1e-15

Also throws error at reset:

Error: Neutral::create: class HSolve not found
moose: Cell.cpp:272: void Cell::setupSolver(const Id&, const Id&) const: Assertion `integ != 0’ failed.
Aborted

Reported by: *anonymous

Disgraceful discharge when field value is not mentioned

create Compartment c
setfield c x
moose: Shell.cpp:1206: static void Shell::setVecField(const Conn&, std::vector<Id, std::allocator<Id> >, std::string, std::string): Assertion `i->good()’ failed.
Aborted (core dumped)

Reported by: raameshd

2nd successive sopy does not work in channels

Not able to duplicate the gate message when successive copy of the channel is made. Such copying is often used. /library has prototype channels. readcell copies the prototypes in library and create the prototype neuron. When this prototype is copied using createmap or copy, channel messages are no where to be found.

Reported by: raameshd

copy puts things in wrong place - redux

create neutral /foo
ce /foo
create neutral bar
copy bar zod

zod will be made on /, not on /foo.

I thought I had fixed this but it has resurfaced.

It causes failure of the moose_readcell.g regression test.

Reported by: upibhalla

'getstat' not working

The command:
echo {getstat -time}
always prints “3” as a result.

In fact, giving any arbitrary arguments, or no arguments at all also behaves in the same way.

Reported by: niraj_

compilation error for pymoose

When ‘make pymoose’ is run, the compilation fails with:

g++ -g -DDO_UNIT_TESTS -fPIC -c moose_wrap.cxx -o moose_wrap.o -I/usr/local/include/python2.5 -I..
moose_wrap.cxx: In function ‘int SWIG_Python_ConvertFunctionPtr(PyObject*, void**, swig_type_info*)’:
moose_wrap.cxx:2052: error: invalid conversion from ‘const char*’ to ‘char*’
moose_wrap.cxx: In function ‘void SWIG_Python_FixMethods(PyMethodDef*, swig_const_info*, swig_type_info**, swig_type_info**)’:
moose_wrap.cxx:64849: error: invalid conversion from ‘const char*’ to ‘char*’
make1: * [moose_wrap.o] Error 1

Reported by: subhacom

Solver manager schedules incorrectly

In certain cases, after automatic solver setup by Cell (i.e., the solver manager), ticks do not point to their intended targets. This leads to segfaults, since the RecvFunc is correct, but target element is something else entirely.

File: TESTS/bugs/solve_sched.g

Reported by: niraj_

SynChan message setup incorrectly if added after Readcell

If a cell is created using ReadCell, then the compartment-synchan message does not get added properly. Along with the usual channel message, another axial message also gets added between the two.

This will happen irrespective of whether the synchan is created using readcell, or via the shell.

File: Synchan.g in TESTS/bugs/synmsg

Reported by: niraj_

Channel field access disrupted by gate field acess

Accessing a channel field after accessing a gate field does not work. This happens only if both of the above are done in a single statement.

Example:

/* Works. */
setfield K_mit_usb Ek 0.07 Y_A>sy 5.0 Y_B->sy 5.0

/* Doesn’t work. */
setfield K_mit_usb Y_A->sy 5.0 Y_B->sy 5.0 Ek -0.07

Error message:
Error: cannot find field: B.Ek

Example script attached.

Reported by: niraj_

getpath not implemented

The getpath command needs to be implemented to manipulate path strings.

Reported by: upibhalla

const_cast in ExtFieldFinfo.h::strSet()

ExtFieldFinfo is a new finfo to add new fields, dynamically, by addfield command. The strSet function, in ExtFieldFinfo, is const function, whose function is to set the value of a private variable. We also need to see that this added field is able to connect to other standard fields.

Currently, this has been handled by doing a const_cast.

Reported by: raameshd

pymoose gets SIGSEGV at reset

This happens only when a Compartment instance has been created. The SIGSEGV occurs at Compartment::initReinitFunc(const Conn& c, ProcInfo p) – when c.data()->innerInitReinitFunc is called. c.targetElement()->name() gives the correct name of the compartment, but it is not clear why the call to innerInitReinitFunc is causing segmentation fault although c.data() is non-null.
innerInitReinitFunc is an empty function.

Reported by: subhacom

DOCS/Demos/test_single_compt.g fails

The script seems to be outdated. Might need some correction.
Error: in IsCommand: Did not find command ‘EREST_ACT’
Error: Neutral::create: Attempt to overwrite existing element ‘/library’. Using original.
soma.p read: 1 compartments, 2 channels, 0 others
Error: setfield : cannot find element /axon/soma/Na_mit_usb/xGate/A
Error: setfield : cannot find element /axon/soma/Na_mit_usb/xGate/B
Error: setfield : cannot find element /axon/soma/Na_mit_usb/yGate/A
Error: setfield : cannot find element /axon/soma/Na_mit_usb/yGate/B
Error: setfield : cannot find element /axon/soma/K_mit_usb/xGate/A
Error: setfield : cannot find element /axon/soma/K_mit_usb/xGate/B
Error: setfield : cannot find element /axon/soma/K_mit_usb/yGate/A
Error: setfield : cannot find element /axon/soma/K_mit_usb/yGate/B

Reported by: subhacom

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.