# How to create automatic sample groups

The `imply` modifier lets you set global, group-level attributes at the project level instead of duplicating that information for every sample that belongs to a group of samples. This makes your project more portable and does a better job conceptually with separating sample attributes from project attributes.

### Example

```
sample_modifiers:
  imply:
    - if:
        genome: ["hg18", "hg19", "hg38"]
      then:
        organism: "human"
    - if:
        genome: ["mm9", "mm10"]
      then:
        organism: "mouse"  
    - if:
        organism: ["human", "mouse", "Mouse"]
      then:
        family: "mammal"
    - if:
        organism: ["bird", "jay", "cardinal"]
      then:
        family: "aves"
```

In this example we expect the samples will have existing `genome` attributes. The first and second implications will set an `organism` attribute to either `human` or `mouse`, depending on the value in the `genome` attribute. The next implication then adds a new variable, `family`, with the value `mammal` for any samples with `human` or `mouse` as the `organism`.

We've therefore used implied attributes to automatically create sample groups on the basis of existing attributes. We could then use the value in `family`, for example, to do a differential comparison on these samples. Any new samples added to the table in the original format will immediately work with any downstream tools.



