Task: NL2SQL (source dataset: bird)

Natural language to SQL, also known as NL2SQL, is the problem of generating a SQL query that can be executed on a input table, for a given natural language question.

You will be given an input table called "table" in the markdown format, as well as a question. Your task is to generate an SQL query that can be executed on the input table to answer the question.

Please ensure that the generated SQL only return relevant columns being specifically asked in the question (e.g., in SQL please don't return more than one columns in SELECT if only one column is needed to answer the given question, and similarly please refrain from using SELECT * unless the entire row is needed to answer the question).
 
When generating SQL code, please use the SQLite syntax to ensure that your SQL is executable on SQLite3. Use only columns that are present in the table, always use quotes around your column and table names (some column names have punctuation or special characters), and refer to the columns using the column-names exactly as they appear in the table, do not add or remove punctuation (underscore, slash, etc.)

No explanation, return the code only with the following markdown codeblock format : ```sql<SQL CODE>```. For example, ```sql
SELECT * FROM "table"
``` is a valid format.

Database:
toxicology

Tables:

Table: atom
| atom_id   | molecule_id   | element   |
|:----------|:--------------|:----------|
| TR000_1   | TR000         | cl        |
| TR000_2   | TR000         | c         |
| TR000_3   | TR000         | cl        |
| TR000_4   | TR000         | cl        |
| TR000_5   | TR000         | h         |
| TR001_1   | TR001         | c         |
| TR001_10  | TR001         | c         |
| TR001_11  | TR001         | o         |
| TR001_12  | TR001         | cl        |
| TR001_13  | TR001         | cl        |


Table: bond
| bond_id     | molecule_id   | bond_type   |
|:------------|:--------------|:------------|
| TR000_1_2   | TR000         | -           |
| TR000_2_3   | TR000         | -           |
| TR000_2_4   | TR000         | -           |
| TR000_2_5   | TR000         | -           |
| TR001_10_11 | TR001         | =           |
| TR001_1_12  | TR001         | -           |
| TR001_1_2   | TR001         | -           |
| TR001_1_7   | TR001         | -           |
| TR001_1_8   | TR001         | -           |
| TR001_2_14  | TR001         | -           |


Table: connected
| atom_id   | atom_id2   | bond_id     |
|:----------|:-----------|:------------|
| TR000_1   | TR000_2    | TR000_1_2   |
| TR000_2   | TR000_1    | TR000_1_2   |
| TR000_2   | TR000_3    | TR000_2_3   |
| TR000_3   | TR000_2    | TR000_2_3   |
| TR000_2   | TR000_4    | TR000_2_4   |
| TR000_4   | TR000_2    | TR000_2_4   |
| TR000_2   | TR000_5    | TR000_2_5   |
| TR000_5   | TR000_2    | TR000_2_5   |
| TR001_10  | TR001_11   | TR001_10_11 |
| TR001_11  | TR001_10   | TR001_10_11 |


Table: molecule
| molecule_id   | label   |
|:--------------|:--------|
| TR000         | +       |
| TR001         | +       |
| TR002         | -       |
| TR004         | -       |
| TR006         | +       |
| TR007         | -       |
| TR008         | -       |
| TR009         | -       |
| TR010         | -       |
| TR011         | -       |


Question: Among all the atoms from 21 to 25, list all the molecules that are carcinogenic.

db_id: toxicology
tables: name: atom
data: atom.csv
name: bond
data: bond.csv
name: connected
data: connected.csv
name: molecule
data: molecule.csv
label: SELECT DISTINCT T2.molecule_id FROM atom AS T1 INNER JOIN molecule AS T2 ON T1.molecule_id = T2.molecule_id WHERE SUBSTR(T1.atom_id, -2) BETWEEN '21' AND '25' AND T2.label = '+'
sqlite_path: $MMTU_HOME/data_sqlite/bird/dev_20240627/dev_databases/toxicology/toxicology.sqlite