# Select specific variants by locus

**URL:** <https://discuss.hail.is/t/select-specific-variants-by-locus/3078>\
**Category:** Hail Query & hailctl\
**Created:** [January 25, 2023, 8:06pm UTC](https://discuss.hail.is/t/select-specific-variants-by-locus/3078 "2023-01-25T20:06:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![bluesky](https://avatars.discourse-cdn.com/v4/letter/b/e47c2d/32.png) [@bluesky](https://discuss.hail.is/u/bluesky)\
**Post date:** [January 25, 2023, 8:06pm UTC](https://discuss.hail.is/t/select-specific-variants-by-locus/3078/1 "2023-01-25T20:06:20Z")

</div>

Hi,

I have a very basic question - extracting specific variants from a matrix table.

If I wanted to extract a couple of variants, e.g.,

```python
variant_list = ['chr1:xx', 'chr1:xx'] #locus
var_select = mt.filter_rows(hl.literal(set(variant_list).contains(mt.locus)))

```

Then I got the error message about ‘TypeError’:

```python
set element type: 'str'
type of arg 'item': locus<GRCh38>

```

I sort of understand the error, but how should exactly I generate the variant lists (as locus format) to extract variants?

Thank you very much!

---

<div class="post-metadata">

**Author:** ![danking](https://yyz2.discourse-cdn.com/flex036/user_avatar/discuss.hail.is/danking/32/43_2.png) [@danking](https://discuss.hail.is/u/danking)\
**Post date:** [January 31, 2023, 8:52pm UTC](https://discuss.hail.is/t/select-specific-variants-by-locus/3078/2 "2023-01-31T20:52:02Z")

</div>

You have to parse your loci into Hail’s format. You can use:

```python
variant_list = [hl.parse_locus(x, reference_genome='GRCh38') for x in variant_list]

```

---

<div class="post-metadata">

**Author:** ![bluesky](https://avatars.discourse-cdn.com/v4/letter/b/e47c2d/32.png) [@bluesky](https://discuss.hail.is/u/bluesky)\
**Post date:** [February 1, 2023, 12:47am UTC](https://discuss.hail.is/t/select-specific-variants-by-locus/3078/3 "2023-02-01T00:47:10Z")

</div>

It worked - thanks much!
