Filtering Transcripts in Hail 0.2

Hi,
I am having difficulties in filtering transcripts. I can filter canonical transcripts, like this;
canonical = data.vep.transcript_consequences.filter( lambda csq: csq.canonical == 1 )

But i want to filter 2 things at a time, like;
canonical = data.vep.transcript_consequences.filter( lambda csq: csq.canonical == 1 and csq.biotype == ‘protein_coding’)

Which is giving me error;
TypeError: ‘Expression’ objects have no static length: use ‘hl.len’ for the length of collections

Q1) How can i filter same transcript by 2 or more than 2 conditions.
Q2) Further i also want to filter transcripts from a text file of transcripts ids to keep. How can i do that also in hail.

Kindly help.

Unfortunately, you can’t use and on HailExpressions. You can instead do

(csq.canonical == 1) & (csq.biotype == 'protein_coding')