between_types¶
lab.connectome.between_types
¶
Synapse totals between cell types, and the edges they make.
network_edges(out_mass, in_mass, lateral=None, *, top_per_type, min_synapses=0)
¶
Pick the edges of a network of types and their partner types.
A partner type is kept for a type when it is among the
top_per_type partner types of that type by the synapses in both
directions together.
The edges are those to the kept partner types and the lateral
edges between different types, each with at least min_synapses.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
out_mass
|
DataFrame
|
Columns |
required |
in_mass
|
DataFrame
|
Columns |
required |
lateral
|
DataFrame
|
Columns |
None
|
top_per_type
|
int
|
Partner types kept for each type. |
required |
min_synapses
|
int
|
Edges below this many synapses are dropped. |
0
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
Columns |
See Also
synapses_between_types : Gives lateral.
Examples:
>>> import polars as pl
>>> out_mass = pl.DataFrame(
... {
... "type": ["T", "T"],
... "partner_type": ["X", "Y"],
... "synapses": [50, 10],
... }
... )
>>> in_mass = pl.DataFrame(
... {"type": ["T"], "partner_type": ["X"], "synapses": [5]}
... )
>>> network_edges(out_mass, in_mass, top_per_type=1).rows()
[('T', 'X', 50, 'out'), ('X', 'T', 5, 'in')]
Source code in lab/connectome/between_types.py
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | |
synapses_between_types(connections, types)
¶
Sum the synapses between every ordered pair of types.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
connections
|
DataFrame
|
Has columns |
required |
types
|
sequence of str
|
The types to tabulate, in the order of the result. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
Columns |
Examples:
>>> import polars as pl
>>> connections = pl.DataFrame(
... {
... "pre_type": ["A", "A", "B"],
... "post_type": ["B", "B", "A"],
... "weight": [10, 2, 7],
... }
... )
>>> synapses_between_types(connections, ["A", "B"]).rows()
[('A', 'A', 0), ('A', 'B', 12), ('B', 'A', 7), ('B', 'B', 0)]