---
title: converters (v1.3)
description: API reference for qiskit.converters in qiskit v1.3
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/1.3/converters
---

# Circuit Converters

`qiskit.converters`

## QuantumCircuit -> circuit components

### circuit\_to\_instruction

`qiskit.converters.circuit_to_instruction(circuit, parameter_map=None, equivalence_library=None, label=None)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.3/qiskit/converters/circuit_to_instruction.py#L20-L155)

Build an [`Instruction`](/docs/api/qiskit/1.3/qiskit.circuit.Instruction "qiskit.circuit.Instruction") object from a [`QuantumCircuit`](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit").

The instruction is anonymous (not tied to a named quantum register), and so can be inserted into another circuit. The instruction will have the same string name as the circuit.

**Parameters**

- **circuit** ([*QuantumCircuit*](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")) – the input circuit.
- **parameter\_map** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict)) – For parameterized circuits, a mapping from parameters in the circuit to parameters to be used in the instruction. If None, existing circuit parameters will also parameterize the instruction.
- **equivalence\_library** ([*EquivalenceLibrary*](/docs/api/qiskit/1.3/qiskit.circuit.EquivalenceLibrary "qiskit.circuit.EquivalenceLibrary")) – Optional equivalence library where the converted instruction will be registered.
- **label** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) – Optional instruction label.

**Raises**

[**QiskitError**](/docs/api/qiskit/1.3/exceptions#qiskit.exceptions.QiskitError "qiskit.exceptions.QiskitError") – if parameter\_map is not compatible with circuit

**Returns**

an instruction equivalent to the action of the input circuit. Upon decomposition, this instruction will yield the components comprising the original circuit.

**Return type**

[qiskit.circuit.Instruction](/docs/api/qiskit/1.3/qiskit.circuit.Instruction "qiskit.circuit.Instruction")

**Example**

```python
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit.converters import circuit_to_instruction

q = QuantumRegister(3, 'q')
c = ClassicalRegister(3, 'c')
circ = QuantumCircuit(q, c)
circ.h(q[0])
circ.cx(q[0], q[1])
circ.measure(q[0], c[0])
circ.rz(0.5, q[1]).c_if(c, 2)
circuit_to_instruction(circ)
```

### circuit\_to\_gate

`qiskit.converters.circuit_to_gate(circuit, parameter_map=None, equivalence_library=None, label=None)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.3/qiskit/converters/circuit_to_gate.py#L30-L107)

Build a [`Gate`](/docs/api/qiskit/1.3/qiskit.circuit.Gate "qiskit.circuit.Gate") object from a [`QuantumCircuit`](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit").

The gate is anonymous (not tied to a named quantum register), and so can be inserted into another circuit. The gate will have the same string name as the circuit.

**Parameters**

- **circuit** ([*QuantumCircuit*](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")) – the input circuit.
- **parameter\_map** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict)) – For parameterized circuits, a mapping from parameters in the circuit to parameters to be used in the gate. If None, existing circuit parameters will also parameterize the Gate.
- **equivalence\_library** ([*EquivalenceLibrary*](/docs/api/qiskit/1.3/qiskit.circuit.EquivalenceLibrary "qiskit.circuit.EquivalenceLibrary")) – Optional equivalence library where the converted gate will be registered.
- **label** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) – Optional gate label.

**Raises**

[**QiskitError**](/docs/api/qiskit/1.3/exceptions#qiskit.exceptions.QiskitError "qiskit.exceptions.QiskitError") – if circuit is non-unitary or if parameter\_map is not compatible with circuit

**Returns**

a Gate equivalent to the action of the input circuit. Upon decomposition, this gate will yield the components comprising the original circuit.

**Return type**

[Gate](/docs/api/qiskit/1.3/qiskit.circuit.Gate "qiskit.circuit.Gate")

## QuantumCircuit \<-> DagCircuit

### circuit\_to\_dag

`qiskit.converters.circuit_to_dag(circuit, copy_operations=True, *, qubit_order=None, clbit_order=None)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.3/qiskit/converters/circuit_to_dag.py#L19-L78)

Build a [`DAGCircuit`](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") object from a [`QuantumCircuit`](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit").

**Parameters**

- **circuit** ([*QuantumCircuit*](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")) – the input circuit.
- **copy\_operations** ([*bool*](https://docs.python.org/3/library/functions.html#bool)) – Deep copy the operation objects in the [`QuantumCircuit`](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit") for the output [`DAGCircuit`](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit"). This should only be set to `False` if the input [`QuantumCircuit`](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit") will not be used anymore as the operations in the output [`DAGCircuit`](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") will be shared instances and modifications to operations in the [`DAGCircuit`](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") will be reflected in the [`QuantumCircuit`](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit") (and vice versa).
- **qubit\_order** (*Iterable\[*[*Qubit*](/docs/api/qiskit/1.3/circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit")*] or None*) – the order that the qubits should be indexed in the output DAG. Defaults to the same order as in the circuit.
- **clbit\_order** (*Iterable\[*[*Clbit*](/docs/api/qiskit/1.3/circuit#qiskit.circuit.Clbit "qiskit.circuit.Clbit")*] or None*) – the order that the clbits should be indexed in the output DAG. Defaults to the same order as in the circuit.

**Returns**

the DAG representing the input circuit.

**Return type**

[DAGCircuit](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit")

**Raises**

[**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError) – if the `qubit_order` or `clbit_order` parameters do not match the bits in the circuit.

**Example**

```python
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit.dagcircuit import DAGCircuit
from qiskit.converters import circuit_to_dag

q = QuantumRegister(3, 'q')
c = ClassicalRegister(3, 'c')
circ = QuantumCircuit(q, c)
circ.h(q[0])
circ.cx(q[0], q[1])
circ.measure(q[0], c[0])
circ.rz(0.5, q[1]).c_if(c, 2)
dag = circuit_to_dag(circ)
```

### dag\_to\_circuit

`qiskit.converters.dag_to_circuit(dag, copy_operations=True)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.3/qiskit/converters/dag_to_circuit.py#L19-L80)

Build a `QuantumCircuit` object from a `DAGCircuit`.

**Parameters**

- **dag** ([*DAGCircuit*](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit")) – the input dag.
- **copy\_operations** ([*bool*](https://docs.python.org/3/library/functions.html#bool)) – Deep copy the operation objects in the [`DAGCircuit`](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") for the output [`QuantumCircuit`](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit"). This should only be set to `False` if the input [`DAGCircuit`](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") will not be used anymore as the operations in the output [`QuantumCircuit`](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit") will be shared instances and modifications to operations in the [`DAGCircuit`](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") will be reflected in the [`QuantumCircuit`](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit") (and vice versa).

**Returns**

the circuit representing the input dag.

**Return type**

[QuantumCircuit](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")

**Example**

```python
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit.dagcircuit import DAGCircuit
from qiskit.converters import circuit_to_dag
from qiskit.circuit.library.standard_gates import CHGate, U2Gate, CXGate
from qiskit.converters import dag_to_circuit

q = QuantumRegister(3, 'q')
c = ClassicalRegister(3, 'c')
circ = QuantumCircuit(q, c)
circ.h(q[0])
circ.cx(q[0], q[1])
circ.measure(q[0], c[0])
circ.rz(0.5, q[1]).c_if(c, 2)
dag = circuit_to_dag(circ)
circuit = dag_to_circuit(dag)
circuit.draw('mpl')
```

![Circuit diagram output by the previous code.](https://eu-de.quantum.cloud.ibm.com/docs/images/api/qiskit/1.3/converters-1.avif)

## QuantumCircuit \<-> DagDependency

### dagdependency\_to\_circuit

`qiskit.converters.dagdependency_to_circuit(dagdependency)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.3/qiskit/converters/dagdependency_to_circuit.py#L17-L46)

Build a `QuantumCircuit` object from a `DAGDependency`.

**Parameters**

**dagdependency** ([*DAGDependency*](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGDependency "qiskit.dagcircuit.DAGDependency")) – the input dag.

**Returns**

the circuit representing the input dag dependency.

**Return type**

[QuantumCircuit](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")

### circuit\_to\_dagdependency

`qiskit.converters.circuit_to_dagdependency(circuit, create_preds_and_succs=True)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.3/qiskit/converters/circuit_to_dagdependency.py#L18-L51)

Build a `DAGDependency` object from a [`QuantumCircuit`](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit").

**Parameters**

- **circuit** ([*QuantumCircuit*](/docs/api/qiskit/1.3/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")) – the input circuit.
- **create\_preds\_and\_succs** ([*bool*](https://docs.python.org/3/library/functions.html#bool)) – whether to construct lists of predecessors and successors for every node.

**Returns**

the DAG representing the input circuit as a dag dependency.

**Return type**

[DAGDependency](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGDependency "qiskit.dagcircuit.DAGDependency")

## DagCircuit \<-> DagDependency

### dag\_to\_dagdependency

`qiskit.converters.dag_to_dagdependency(dag, create_preds_and_succs=True)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.3/qiskit/converters/dag_to_dagdependency.py#L17-L55)

Build a `DAGDependency` object from a `DAGCircuit`.

**Parameters**

- **dag** ([*DAGCircuit*](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit")) – the input dag.
- **create\_preds\_and\_succs** ([*bool*](https://docs.python.org/3/library/functions.html#bool)) – whether to construct lists of predecessors and successors for every node.

**Returns**

the DAG representing the input circuit as a dag dependency.

**Return type**

[DAGDependency](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGDependency "qiskit.dagcircuit.DAGDependency")

### dagdependency\_to\_dag

`qiskit.converters.dagdependency_to_dag(dagdependency)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.3/qiskit/converters/dagdependency_to_dag.py#L18-L54)

Build a `DAGCircuit` object from a `DAGDependency`.

**Parameters**

**dependency** (*dag*) – the input dag.

**Returns**

the DAG representing the input circuit.

**Return type**

[DAGCircuit](/docs/api/qiskit/1.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit")
