Float32Expression¶
-
class
hail.expr.
Float32Expression
[source]¶ Expression of type
tfloat32
.Attributes
The data type of the expression.
Methods
-
__add__
(other)¶ Add two numbers.
Examples
>>> hl.eval(x + 2) 5
>>> hl.eval(x + y) 7.5
- Parameters
other (
NumericExpression
) – Number to add.- Returns
NumericExpression
– Sum of the two numbers.
-
__eq__
(other)¶ Returns
True
if the two expressions are equal.Examples
>>> x = hl.literal(5) >>> y = hl.literal(5) >>> z = hl.literal(1)
>>> hl.eval(x == y) True
>>> hl.eval(x == z) False
Notes
This method will fail with an error if the two expressions are not of comparable types.
- Parameters
other (
Expression
) – Expression for equality comparison.- Returns
BooleanExpression
–True
if the two expressions are equal.
-
__floordiv__
(other)¶ Divide two numbers with floor division.
Examples
>>> hl.eval(x // 2) 1
>>> hl.eval(y // 2) 2.0
- Parameters
other (
NumericExpression
) – Dividend.- Returns
NumericExpression
– The floor of the left number divided by the right.
-
__ge__
(other)¶ Greater-than-or-equals comparison.
Examples
>>> hl.eval(y >= 4) True
- Parameters
other (
NumericExpression
) – Right side for comparison.- Returns
BooleanExpression
–True
if the left side is greater than or equal to the right side.
-
__gt__
(other)¶ Greater-than comparison.
Examples
>>> hl.eval(y > 4) True
- Parameters
other (
NumericExpression
) – Right side for comparison.- Returns
BooleanExpression
–True
if the left side is greater than the right side.
-
__le__
(other)¶ Less-than-or-equals comparison.
Examples
>>> hl.eval(x <= 3) True
- Parameters
other (
NumericExpression
) – Right side for comparison.- Returns
BooleanExpression
–True
if the left side is smaller than or equal to the right side.
-
__lt__
(other)¶ Less-than comparison.
Examples
>>> hl.eval(x < 5) True
- Parameters
other (
NumericExpression
) – Right side for comparison.- Returns
BooleanExpression
–True
if the left side is smaller than the right side.
-
__mod__
(other)¶ Compute the left modulo the right number.
Examples
>>> hl.eval(32 % x) 2
>>> hl.eval(7 % y) 2.5
- Parameters
other (
NumericExpression
) – Dividend.- Returns
NumericExpression
– Remainder after dividing the left by the right.
-
__mul__
(other)¶ Multiply two numbers.
Examples
>>> hl.eval(x * 2) 6
>>> hl.eval(x * y) 13.5
- Parameters
other (
NumericExpression
) – Number to multiply.- Returns
NumericExpression
– Product of the two numbers.
-
__ne__
(other)¶ Returns
True
if the two expressions are not equal.Examples
>>> x = hl.literal(5) >>> y = hl.literal(5) >>> z = hl.literal(1)
>>> hl.eval(x != y) False
>>> hl.eval(x != z) True
Notes
This method will fail with an error if the two expressions are not of comparable types.
- Parameters
other (
Expression
) – Expression for inequality comparison.- Returns
BooleanExpression
–True
if the two expressions are not equal.
-
__neg__
()¶ Negate the number (multiply by -1).
Examples
>>> hl.eval(-x) -3
- Returns
NumericExpression
– Negated number.
-
__pow__
(power, modulo=None)¶ Raise the left to the right power.
Examples
>>> hl.eval(x ** 2) 9.0
>>> hl.eval(x ** -2) 0.1111111111111111
>>> hl.eval(y ** 1.5) 9.545941546018392
- Parameters
power (
NumericExpression
)modulo – Unsupported argument.
- Returns
Expression
of typetfloat64
– Result of raising left to the right power.
-
__sub__
(other)¶ Subtract the right number from the left.
Examples
>>> hl.eval(x - 2) 1
>>> hl.eval(x - y) -1.5
- Parameters
other (
NumericExpression
) – Number to subtract.- Returns
NumericExpression
– Difference of the two numbers.
-
__truediv__
(other)¶ Divide two numbers.
Examples
>>> hl.eval(x / 2) 1.5
>>> hl.eval(y / 0.1) 45.0
- Parameters
other (
NumericExpression
) – Dividend.- Returns
NumericExpression
– The left number divided by the left.
-
collect
(_localize=True)¶ Collect all records of an expression into a local list.
Examples
Collect all the values from C1:
>>> table1.C1.collect() [2, 2, 10, 11]
Warning
Extremely experimental.
Warning
The list of records may be very large.
- Returns
-
describe
(handler=<built-in function print>)¶ Print information about type, index, and dependencies.
-
export
(path, delimiter='\t', missing='NA', header=True)¶ Export a field to a text file.
Examples
>>> small_mt.GT.export('output/gt.tsv') >>> with open('output/gt.tsv', 'r') as f: ... for line in f: ... print(line, end='') locus alleles 0 1 2 3 1:1 ["A","C"] 1/1 1/1 0/1 0/1 1:2 ["A","C"] 1/1 1/1 0/0 1/1 1:3 ["A","C"] 0/0 0/0 0/1 0/0 1:4 ["A","C"] 1/1 0/1 1/1 0/1
>>> small_mt.GT.export('output/gt-no-header.tsv', header=False) >>> with open('output/gt-no-header.tsv', 'r') as f: ... for line in f: ... print(line, end='') 1:1 ["A","C"] 1/1 1/1 0/1 0/1 1:2 ["A","C"] 1/1 1/1 0/0 1/1 1:3 ["A","C"] 0/0 0/0 0/1 0/0 1:4 ["A","C"] 1/1 0/1 1/1 0/1
>>> small_mt.pop.export('output/pops.tsv') >>> with open('output/pops.tsv', 'r') as f: ... for line in f: ... print(line, end='') sample_idx pop 0 0 1 0 2 2 3 0
>>> small_mt.ancestral_af.export('output/ancestral_af.tsv') >>> with open('output/ancestral_af.tsv', 'r') as f: ... for line in f: ... print(line, end='') locus alleles ancestral_af 1:1 ["A","C"] 5.6562e-01 1:2 ["A","C"] 3.6521e-01 1:3 ["A","C"] 2.6421e-01 1:4 ["A","C"] 6.5715e-01
>>> small_mt.bn.export('output/bn.tsv') >>> with open('output/bn.tsv', 'r') as f: ... for line in f: ... print(line, end='') bn {"n_populations":3,"n_samples":4,"n_variants":4,"n_partitions":8,"pop_dist":[1,1,1],"fst":[0.1,0.1,0.1],"mixture":false}
Notes
For entry-indexed expressions, if there is one column key field, the result of calling
str()
on that field is used as the column header. Otherwise, each compound column key is converted to JSON and used as a column header. For example:>>> small_mt = small_mt.key_cols_by(s=small_mt.sample_idx, family='fam1') >>> small_mt.GT.export('output/gt-no-header.tsv') >>> with open('output/gt-no-header.tsv', 'r') as f: ... for line in f: ... print(line, end='') locus alleles {"s":0,"family":"fam1"} {"s":1,"family":"fam1"} {"s":2,"family":"fam1"} {"s":3,"family":"fam1"} 1:1 ["A","C"] 1/1 1/1 0/1 0/1 1:2 ["A","C"] 1/1 1/1 0/0 1/1 1:3 ["A","C"] 0/0 0/0 0/1 0/0 1:4 ["A","C"] 1/1 0/1 1/1 0/1
-
show
(n=None, width=None, truncate=None, types=True, handler=None, n_rows=None, n_cols=None)¶ Print the first few records of the expression to the console.
If the expression refers to a value on a keyed axis of a table or matrix table, then the accompanying keys will be shown along with the records.
Examples
>>> table1.SEX.show() +-------+-----+ | ID | SEX | +-------+-----+ | int32 | str | +-------+-----+ | 1 | "M" | | 2 | "M" | | 3 | "F" | | 4 | "F" | +-------+-----+
>>> hl.literal(123).show() +--------+ | <expr> | +--------+ | int32 | +--------+ | 123 | +--------+
Notes
The output can be passed piped to another output source using the handler argument:
>>> ht.foo.show(handler=lambda x: logging.info(x))
- Parameters
-
summarize
(handler=None)¶ Compute and print summary information about the expression.
Danger
This functionality is experimental. It may not be tested as well as other parts of Hail and the interface is subject to change.
-