Circuit Converters
qiskit.converters
qiskit.converters.circuit_to_dag(circuit, copy_operations=True, *, qubit_order=None, clbit_order=None)
Build a DAGCircuit
object from a QuantumCircuit
.
Parameters
- circuit (QuantumCircuit) – the input circuit.
- copy_operations (bool (opens in a new tab)) – Deep copy the operation objects in the
QuantumCircuit
for the outputDAGCircuit
. This should only be set toFalse
if the inputQuantumCircuit
will not be used anymore as the operations in the outputDAGCircuit
will be shared instances and modifications to operations in theDAGCircuit
will be reflected in theQuantumCircuit
(and vice versa). - qubit_order (Iterable[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] 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
Raises
ValueError (opens in a new tab) – if the qubit_order
or clbit_order
parameters do not match the bits in the circuit.
Example
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)
qiskit.converters.dag_to_circuit(dag, copy_operations=True)
Build a QuantumCircuit
object from a DAGCircuit
.
Parameters
- dag (DAGCircuit) – the input dag.
- copy_operations (bool (opens in a new tab)) – Deep copy the operation objects in the
DAGCircuit
for the outputQuantumCircuit
. This should only be set toFalse
if the inputDAGCircuit
will not be used anymore as the operations in the outputQuantumCircuit
will be shared instances and modifications to operations in theDAGCircuit
will be reflected in theQuantumCircuit
(and vice versa).
Returns
the circuit representing the input dag.
Return type
Example
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')

qiskit.converters.circuit_to_instruction(circuit, parameter_map=None, equivalence_library=None, label=None)
Build an Instruction
object from a 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) – the input circuit.
- parameter_map (dict (opens in a new tab)) – 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) – Optional equivalence library where the converted instruction will be registered.
- label (str (opens in a new tab)) – Optional instruction label.
Raises
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
Example
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)
qiskit.converters.circuit_to_gate(circuit, parameter_map=None, equivalence_library=None, label=None)
Build a Gate
object from a 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) – the input circuit.
- parameter_map (dict (opens in a new tab)) – 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) – Optional equivalence library where the converted gate will be registered.
- label (str (opens in a new tab)) – Optional gate label.
Raises
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
qiskit.converters.ast_to_dag(ast)
Build a DAGCircuit
object from an AST Node
object.
Parameters
ast (Program) – a Program Node of an AST (parser’s output)
Returns
the DAG representing an OpenQASM’s AST
Return type
Raises
QiskitError – if the AST is malformed.
Example
from qiskit.converters import ast_to_dag
from qiskit import qasm, QuantumCircuit, ClassicalRegister, QuantumRegister
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)
qasm_str = circ.qasm()
ast = qasm.Qasm(data=qasm_str).parse()
dag = ast_to_dag(ast)
qiskit.converters.dagdependency_to_circuit(dagdependency)
Build a QuantumCircuit
object from a DAGDependency
.
Parameters
dagdependency (DAGDependency) – the input dag.
Returns
the circuit representing the input dag dependency.
Return type
qiskit.converters.circuit_to_dagdependency(circuit, create_preds_and_succs=True)
Build a DAGDependency
object from a QuantumCircuit
.
Parameters
- circuit (QuantumCircuit) – the input circuit.
- create_preds_and_succs (bool (opens in a new tab)) – whether to construct lists of predecessors and successors for every node.
Returns
the DAG representing the input circuit as a dag dependency.
Return type
qiskit.converters.dag_to_dagdependency(dag, create_preds_and_succs=True)
Build a DAGDependency
object from a DAGCircuit
.
Parameters
- dag (DAGCircuit) – the input dag.
- create_preds_and_succs (bool (opens in a new tab)) – whether to construct lists of predecessors and successors for every node.
Returns
the DAG representing the input circuit as a dag dependency.
Return type
qiskit.converters.dagdependency_to_dag(dagdependency)
Build a DAGCircuit
object from a DAGDependency
.
Parameters
dependency (dag) – the input dag.
Returns
the DAG representing the input circuit.
Return type