Changeset 27145 in project


Ignore:
Timestamp:
07/31/12 10:33:15 (9 years ago)
Author:
Ivan Raikov
Message:

nemo: added support for modulating ions in nmodl backend

Location:
release/4/nemo/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • release/4/nemo/trunk/nemo-gate-complex.scm

    r27140 r27145  
    117117                                      ion-pools))
    118118
     119             (mod-ions         (fold (lambda (gate-complex ax)
     120                                        (let* ((subcomps ((dis 'component-subcomps) sys (cid gate-complex)))
     121                                               (modcomp   (lookup-def 'modulating-ion subcomps)))
     122                                          (cond
     123                                                (modcomp
     124                                                 (let ((ion (cn modcomp)))
     125                                                   (cons `(,ion ,(in-concentration-name ion)) ax)))
     126                                                (else ax))))
     127                                      '() gate-complexes))
     128
    119129             (i-gates           (fold (lambda (gate-complex ax)
    120130                                        (let* ((subcomps     ((dis 'component-subcomps) sys (cid gate-complex)))
     
    152162          (perm-ions    ,perm-ions)
    153163          (acc-ions     ,acc-ions)
     164          (mod-ions     ,mod-ions)
    154165          (pool-ions    ,pool-ions)
    155166          (i-gates      ,i-gates)
  • release/4/nemo/trunk/nemo-nmodl.scm

    r27142 r27145  
    680680             (acc-ions      (map (match-lambda ((comp i in out) `(,comp ,@(map nmodl-name (list i in out)))))
    681681                                 (lookup-def 'acc-ions gate-complex-info)))
     682             (mod-ions      (lookup-def 'mod-ions gate-complex-info))
    682683             (epools        (lookup-def 'pool-ions gate-complex-info))
    683 
    684684             (pool-ions     (map (lambda (lst) (map nmodl-name lst)) epools))
    685685
     
    732732           
    733733           (if (null? acc-ions)
    734                (for-each (lambda (pool-ion epool)
    735                            (let ((valence (fifth epool)))
    736                              (if valence
    737                                  (pp indent+ (RANGE ,(slp ", " (list (second pool-ion) (third pool-ion))))
    738                                      (USEION ,(fourth pool-ion)
    739                                              READ  ,(slp ", " (list (second pool-ion)))
    740                                              WRITE ,(slp ", " (list (third pool-ion )))
    741                                              VALENCE ,(inexact->exact (eval-const valence valence))))
    742                                  (pp indent+ (RANGE ,(slp ", " (list (second pool-ion) (third pool-ion))))
    743                                      (USEION ,(fourth pool-ion)
    744                                              READ  ,(slp ", " (list (second pool-ion)))
    745                                              WRITE ,(slp ", " (list (third pool-ion )))))
    746                                  )))
    747                          pool-ions epools)
     734               (begin
     735                 (for-each (lambda (pool-ion epool)
     736                             (let ((valence (fifth epool)))
     737                               (if valence
     738                                   (pp indent+ (RANGE ,(slp ", " (list (second pool-ion) (third pool-ion))))
     739                                       (USEION ,(fourth pool-ion)
     740                                               READ  ,(slp ", " (list (second pool-ion)))
     741                                               WRITE ,(slp ", " (list (third pool-ion )))
     742                                               VALENCE ,(inexact->exact (eval-const valence valence))))
     743                                   (pp indent+ (RANGE ,(slp ", " (list (second pool-ion) (third pool-ion))))
     744                                       (USEION ,(fourth pool-ion)
     745                                               READ  ,(slp ", " (list (second pool-ion)))
     746                                               WRITE ,(slp ", " (list (third pool-ion )))))
     747                                   )))
     748                           pool-ions epools)
     749
     750                 (for-each (lambda (mod-ion)
     751                             (pp indent+
     752                                 (RANGE ,(second mod-ion))
     753                                 (USEION ,(first mod-ion) READ ,(second mod-ion))))
     754                           mod-ions)
     755                 )
    748756               (for-each (lambda (acc-ion)
    749757                           (let ((pool-ion (assoc (first acc-ion) pool-ions)))
Note: See TracChangeset for help on using the changeset viewer.