# Class: ClassReference 


_Reference to a class that can be instantiated and called. Used for external library classes (e.g., tvboptim.Bold, custom monitors). The class is instantiated with constructor_args, then called with call_args. Generalizable pattern: works for tvboptim, TVB, or any Python class._



<div data-search-exclude markdown="1">



URI: [tvbo:ClassReference](https://w3id.org/tvbo/ClassReference)





```{mermaid}
 classDiagram
    class ClassReference
    click ClassReference href "./ClassReference.html"
      Callable <|-- ClassReference
        click Callable href "./Callable.html"
      
      ClassReference : call_args
        
          
    
        
        
        ClassReference --> "*" Argument : call_args
        click Argument href "./Argument.html"
    

        
      ClassReference : constructor_args
        
          
    
        
        
        ClassReference --> "*" Argument : constructor_args
        click Argument href "./Argument.html"
    

        
      ClassReference : description
        
          
    
        
        
        ClassReference --> "0..1" String : description
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      ClassReference : module
        
          
    
        
        
        ClassReference --> "0..1" String : module
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      ClassReference : name
        
          
    
        
        
        ClassReference --> "1" String : name
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      ClassReference : software
        
          
    
        
        
        ClassReference --> "0..1" SoftwareRequirement : software
        click SoftwareRequirement href "./SoftwareRequirement.html"
    

        
      ClassReference : traceable
        
          
    
        
        
        ClassReference --> "0..1" Boolean : traceable
        click Boolean href "../http://www.w3.org/2001/XMLSchema#boolean.html"
    

        
      ClassReference : warmup
        
          
    
        
        
        ClassReference --> "0..1" Float : warmup
        click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
    

        
      
```





## Inheritance
* [Callable](../classes/Callable.qmd)
    * **ClassReference**


## Class Properties

| Property | Value |
| --- | --- |
| Class URI | [tvbo:ClassReference](https://w3id.org/tvbo/ClassReference) |


## Slots

| Name | Cardinality and Range | Description | Inheritance |
| ---  | --- | --- | --- |
| [constructor_args](../slots/constructor_args.qmd) | * <br/> [Argument](../classes/Argument.qmd) | Arguments passed to __init__ when instantiating the class | direct |
| [call_args](../slots/call_args.qmd) | * <br/> [Argument](../classes/Argument.qmd) | Arguments passed when calling the instance (__call__) | direct |
| [warmup](../slots/warmup.qmd) | 0..1 <br/> [xsd:float](http://www.w3.org/2001/XMLSchema#float) | How much signal this class convolves against before its first output is meani... | direct |
| [name](../slots/name.qmd) | 1 <br/> [xsd:string](http://www.w3.org/2001/XMLSchema#string) | Globally unique identifier for the entity | [Callable](../classes/Callable.qmd) |
| [description](../slots/description.qmd) | 0..1 <br/> [xsd:string](http://www.w3.org/2001/XMLSchema#string) |  | [Callable](../classes/Callable.qmd) |
| [module](../slots/module.qmd) | 0..1 <br/> [xsd:string](http://www.w3.org/2001/XMLSchema#string) |  | [Callable](../classes/Callable.qmd) |
| [software](../slots/software.qmd) | 0..1 <br/> [SoftwareRequirement](../classes/SoftwareRequirement.qmd) |  | [Callable](../classes/Callable.qmd) |
| [traceable](../slots/traceable.qmd) | 0..1 <br/> [xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | Whether this callable can be traced by an array-programming backend (jit/vmap... | [Callable](../classes/Callable.qmd) |





## Usages

| used by | used in | type | used |
| ---  | --- | --- | --- |
| [Observation](../classes/Observation.qmd) | [class_reference](../slots/class_reference.qmd) | range | [ClassReference](../classes/ClassReference.qmd) |
| [Analysis](../classes/Analysis.qmd) | [class_call](../slots/class_call.qmd) | range | [ClassReference](../classes/ClassReference.qmd) |
| [FunctionCall](../classes/FunctionCall.qmd) | [class_call](../slots/class_call.qmd) | range | [ClassReference](../classes/ClassReference.qmd) |












## Identifier and Mapping Information





### Schema Source


* from schema: https://w3id.org/tvbo




## Mappings

| Mapping Type | Mapped Value |
| ---  | ---  |
| self | tvbo:ClassReference |
| native | tvbo:ClassReference |






## LinkML Source

<!-- TODO: investigate https://stackoverflow.com/questions/37606292/how-to-create-tabbed-code-blocks-in-mkdocs-or-sphinx -->

### Direct

<details>
```yaml
name: ClassReference
description: 'Reference to a class that can be instantiated and called. Used for external
  library classes (e.g., tvboptim.Bold, custom monitors). The class is instantiated
  with constructor_args, then called with call_args. Generalizable pattern: works
  for tvboptim, TVB, or any Python class.'
from_schema: https://w3id.org/tvbo
is_a: Callable
attributes:
  constructor_args:
    name: constructor_args
    description: 'Arguments passed to __init__ when instantiating the class. Example:
      period=1000.0, downsample_period=4.0 for Bold monitor.'
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - ClassReference
    range: Argument
    multivalued: true
    inlined_as_list: true
  call_args:
    name: call_args
    description: 'Arguments passed when calling the instance (__call__). Usually the
      input data from simulation result. Example: result (simulation output array).'
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - ClassReference
    range: Argument
    multivalued: true
    inlined_as_list: true
  warmup:
    name: warmup
    description: 'How much signal this class convolves against before its first output
      is meaningful, as a duration in the integration''s time unit. An external class
      is a black box, so its memory is declared here rather than inferred from the
      length of what it returns -- a class that pads or trims would make that inference
      wrong silently, and the result would look like a plausible series. Absent means
      memoryless: the class emits one output per period with no history behind it
      (GlobalAverage, SpatialAverage, EEG, AfferentCoupling), and the settle''s own
      output samples are simply dropped. Present means kernel-bearing (a BOLD monitor
      and its HRF variants): the settle is cut at the INPUT instead, leaving this
      much of it in front of t = 0 for the class to eat, so the first reported sample
      is the first measured one and no arithmetic is done on the output at all. A
      settle shorter than the warm-up opens the class on zeros, which is what it would
      do at t = 0 anyway.'
    from_schema: https://w3id.org/tvbo
    domain_of:
    - RenderSpec
    - ClassReference
    - UpdateRule
    range: float
class_uri: tvbo:ClassReference

```
</details>

### Induced

<details>
```yaml
name: ClassReference
description: 'Reference to a class that can be instantiated and called. Used for external
  library classes (e.g., tvboptim.Bold, custom monitors). The class is instantiated
  with constructor_args, then called with call_args. Generalizable pattern: works
  for tvboptim, TVB, or any Python class.'
from_schema: https://w3id.org/tvbo
is_a: Callable
attributes:
  constructor_args:
    name: constructor_args
    description: 'Arguments passed to __init__ when instantiating the class. Example:
      period=1000.0, downsample_period=4.0 for Bold monitor.'
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: ClassReference
    domain_of:
    - ClassReference
    range: Argument
    multivalued: true
    inlined: true
    inlined_as_list: true
  call_args:
    name: call_args
    description: 'Arguments passed when calling the instance (__call__). Usually the
      input data from simulation result. Example: result (simulation output array).'
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: ClassReference
    domain_of:
    - ClassReference
    range: Argument
    multivalued: true
    inlined: true
    inlined_as_list: true
  warmup:
    name: warmup
    description: 'How much signal this class convolves against before its first output
      is meaningful, as a duration in the integration''s time unit. An external class
      is a black box, so its memory is declared here rather than inferred from the
      length of what it returns -- a class that pads or trims would make that inference
      wrong silently, and the result would look like a plausible series. Absent means
      memoryless: the class emits one output per period with no history behind it
      (GlobalAverage, SpatialAverage, EEG, AfferentCoupling), and the settle''s own
      output samples are simply dropped. Present means kernel-bearing (a BOLD monitor
      and its HRF variants): the settle is cut at the INPUT instead, leaving this
      much of it in front of t = 0 for the class to eat, so the first reported sample
      is the first measured one and no arithmetic is done on the output at all. A
      settle shorter than the warm-up opens the class on zeros, which is what it would
      do at t = 0 anyway.'
    from_schema: https://w3id.org/tvbo
    owner: ClassReference
    domain_of:
    - RenderSpec
    - ClassReference
    - UpdateRule
    range: float
  name:
    name: name
    description: Globally unique identifier for the entity.
    from_schema: https://w3id.org/tvbo/common
    slot_uri: schema:name
    identifier: true
    owner: ClassReference
    domain_of:
    - BrainAtlas
    - CommonCoordinateSpace
    - ParcellationEntity
    - StudyLayout
    - StudyTemplate
    - StudyDirectory
    - StudyFile
    - DBSProtocol
    - ClinicalScale
    - ClinicalScore
    - SoftwarePackage
    - SoftwareRequirement
    - SoftwareEnvironment
    - Figure
    - Event
    - Tractogram
    - ResultEntity
    - Activity
    - CachedArray
    - MeasureSpec
    - NamedArray
    - GraphGenerator
    - Binding
    - ProcedureStep
    - File
    - StateValue
    - Observation
    - Dynamics
    - StateVariable
    - Distribution
    - Parameter
    - CouplingInput
    - Argument
    - Function
    - FunctionCall
    - Callable
    - DerivedParameter
    - DerivedVariable
    - DataSource
    - OptimizationStage
    - Exploration
    - Inference
    - Prior
    - Likelihood
    - UpdateRule
    - Algorithm
    - Option
    - BranchSwitch
    - Continuation
    - Coupling
    - EnvironmentVariable
    - SchedulerDirective
    - Reducer
    range: string
    required: true
  description:
    name: description
    from_schema: https://w3id.org/tvbo
    rank: 1000
    slot_uri: dcterms:description
    owner: ClassReference
    domain_of:
    - CommonCoordinateSpace
    - Dataset
    - StudyLayout
    - StudyTemplate
    - StudyDirectory
    - StudyFile
    - ClinicalScore
    - SoftwarePackage
    - SoftwareRequirement
    - SoftwareEnvironment
    - Figure
    - Panel
    - Equation
    - Stimulus
    - Event
    - Tractogram
    - Matrix
    - ResultEntity
    - Activity
    - Phenotype
    - MeasureSpec
    - NamedArray
    - Network
    - GraphGenerator
    - ProcedureStep
    - File
    - Node
    - Edge
    - Observation
    - Dynamics
    - StateVariable
    - Parameter
    - CouplingInput
    - Argument
    - Function
    - FunctionCall
    - Callable
    - DerivedParameter
    - DerivedVariable
    - RandomStream
    - DataSource
    - OptimizationStage
    - Exploration
    - ExplorationAxis
    - FreeParameter
    - Inference
    - Prior
    - Likelihood
    - UpdateRule
    - AlgorithmStage
    - TuningObjective
    - Algorithm
    - BranchSwitch
    - Continuation
    - Integrator
    - Coupling
    - RegionMapping
    - SimulationExperiment
    - Study
    - ResultBinding
    - TimeSeries
    - NDArray
    - SpatialDomain
    - Mesh
    - SpatialField
    - FieldStateVariable
    - BoundaryCondition
    - PDESolver
    - PDE
    - Reducer
    range: string
  module:
    name: module
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: ClassReference
    domain_of:
    - Callable
    range: string
  software:
    name: software
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: ClassReference
    domain_of:
    - Callable
    - Continuation
    - SimulationExperiment
    range: SoftwareRequirement
    inlined: true
  traceable:
    name: traceable
    description: Whether this callable can be traced by an array-programming backend
      (jit/vmap under JAX), asserted by the recipe rather than inferred from the module
      name. A backend that batches a parameter grid must know whether an observation's
      callable survives tracing; without this it can only guess from the import root,
      which makes every study-local callable untraceable however it is written. Set
      it true only for a callable written against the backend's array API -- a host
      NumPy/SciPy callable declared traceable fails inside the trace, with the tracer
      error naming this claim as its cause. Unset means "infer", preserving the import-root
      default.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: ClassReference
    domain_of:
    - Callable
    range: boolean
class_uri: tvbo:ClassReference

```
</details></div>