from os import name from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister from qiskit.circuit.library import XGate, HGate, ZGate qc_1 = QuantumCircuit(4) qc_2 = QuantumCircuit(4) qc_2.h(1) qc2_inst = qc_2.to_instruction() combined_circuit = qc_1.compose(qc_2) combined_circuit.append(qc2_inst, [0,1,2,3]) combined_circuit.append(XGate(), [0]) combined_circuit.draw('mpl') The above works fine, but I want to understand how to_instruction converts a circuit into an instruction.