Tutorial 3.5 : Contributing Experimentally-Validated Devices to the SQuADDS Database#

In this section, we will go over how to contribute experimentally-validated devices to the SQuADDS database.

The most important attribute of a new database configuration is an experimentally verified device. These devices can be used to validate simulations in the SQuADDS database, and allow the SQuADDS program to continue to grow and be used for more design configurations.

Experimentally-validated device results are stored within the measured_device_database column in the HuggingFace dataset. You can upload an experimentally verified device before any simulations have been performed, or you can use this in conjunction with the previous tutorials to add simulations along with your device.


Note: We are currently working on an API to make this process MUCH simpler for users. Stay tuned for updates!

Creating a GitHub Repository for Your Device#

To add a device to the measured_device_database, you need to create a GitHub repository following a standard format. This ensures that your device’s results are valid and can be integrated into the dataset and other automations within SQuADDS.

By the end of this tutorial, you will have a GitHub repository for your device that adheres to the required structure, allowing for the verification of your experimental results.

Step 1: Create Your GitHub Repository#

  1. Repository Naming Convention:
    Name your repository as either design_schema_DEVICENAME or design_schema_DEVICENAME_squadds.
    • Example: design_schema_falcon

  2. Repository Visibility:
    Make sure the repository is public.
  3. README File:

    • Include a short description of your device.

    • Provide a table of the main measured results from the device. This information will also be included in the HuggingFace JSON.

    • Optionally, add links to any associated papers related to your device.

  4. Ensure that the main branch of your repository is named main.

Step 2: Organize the Repository Contents#

Create the following four folders within your repository:

  1. Assets:

    • Upload a PDF/PNG of the device design. This can be:

      • A scanning electron microscope image,

      • A Qiskit Metal model,

      • An artist’s rendition.

      • The visual representation must clearly show the structure of your device.

    • Save the URL address of the image, as you will need to include this link when uploading to HuggingFace.

    • Upload the GDS file associated with your device. (Optional)

  2. Design:

    • Add IPython notebooks or Python files related to the design of your device.

  3. Simulations:

    • Include any code related to the simulations of your device, either as a Jupyter notebook or a Python file. (Optional)

Step 3: Finalize and Upload#

Once the repository is structured as outlined above, it is ready to be uploaded to HuggingFace.


Contributing to HuggingFace#

The process of contributing an experimentally validated design to the measured_device_database is similar to contributing other data. However, in this case, you will be adding a new row to the existing measured_device_database subset.

The dataset format is a JSON file, and each contributed experimental device to SQuADDS must at least include the following fields:


JSON Structure for Contributing#

[
    {
        "design_code": "GITHUB LINK",
        "contrib_info": {
            "group": "",
            "PI": "",
            "institution": "",
            "uploader": "",
            "measured_by": [],
            "date_created": "",
            "name": ""  // This can be a name that your group uses to identify the device
        },
        "measured_results": [
            {
                "H_params": [
                    // Your measured parameters go here
                ]
            }
        ],
        "sim_results": [
            "associated_simulation_1",
            "associated_simulation_n" // Leave blank if there are no associated simulations
        ],
        "image": "GITHUB IMAGE LINK",
        "paper_link": "PAPER LINK",
        "foundry": "FOUNDRY NAME",
        "fabrication_recipe": "FABUBLOX LINK",
        "notes": "NOTES" // Optional
    }
]

Details on Each Field#

  1. ``design_code``:

    • Link to your GitHub repository for the device.

  2. ``contrib_info``:

    • ``group``: The research group contributing the device.

    • ``PI``: Principal Investigator’s name.

    • ``institution``: The institution affiliated with the contribution.

    • ``uploader``: The person uploading the data.

    • ``measured_by``: List of individuals who measured the device.

    • ``date_created``: Date when the device was created.

    • ``name``: A name that your group uses to identify the device.

  3. ``measured_results``:

    • This section contains the main measured results of the device, formatted as JSON. This is the same data you have entered in the GitHub README but formatted for JSON.

    • Example:

    "measured_results": [
        {
            "H_params": [
                {
                    "qubit_1": {
                        "F_res_GHz": 6.116,
                        "F_01_GHz": 4.216,
                        "Anharmonicity_MHz": -153,
                        "punchout_shift_MHz": 1.6672,
                        "Extracted_g_MHz": 61,
                        "Estimated_Dispersive_shift_KHz": 303,
                        "L_j_nH": 9.686
                    },
                    "qubit_2": {
                        "F_res_GHz": 6.353,
                        "F_01_GHz": 3.896,
                        "Anharmonicity_MHz": -154,
                        "Punchout_shift_MHz": 1.4,
                        "Extracted_g_MHz": 67,
                        "Estimated_Dispersive_shift_KHz": 230,
                        "L_j_nH": 11.268
                    }
                    // Add more qubits as needed
                }
            ]
        }
    ]
    
  4. ``sim_results``:

    • If you have run simulations within the SQuADDS framework, list them here. If not, leave this blank.

  5. ``image``:

    • Link to the image of the device stored on GitHub.

  6. ``paper_link``:

    • Link to any papers associated with the device.

  7. ``foundry``:

    • The name of the foundry that fabricated the device.

  8. ``notes`` (Optional):

    • Any additional notes about the device.


Step-by-Step Contribution Process#

  1. Clone/Fork the Repository:

    • Follow the instructions in Tutorial 3 to clone or fork the repository.

  2. Add Your JSON:

    • Add your complete JSON entry to the existing measured_device_database JSON file.

  3. Make a Pull Request:

    • Submit a pull request to add your entry to the main SQUADDS_DB.

Review Process#

After making the pull request, your GitHub repository and JSON file will be reviewed to ensure all information is correct.

Thank you for your contribution to SQuADDS! 🤗🎉

Note: We are currently working on an API to make this process even simpler for users. Stay tuned for updates!

License#

This code is a part of SQuADDS

Developed by Sadman Ahmed Shanto

This tutorial is written by Elizabeth Kunz and Sadman Ahmed Shanto

© Copyright Sadman Ahmed Shanto & Eli Levenson-Falk 2023.

This code is licensed under the MIT License. You may obtain a copy of this license in the LICENSE.txt file in the root directory of this source tree.

Any modifications or derivative works of this code must retain thiscopyright notice, and modified files need to carry a notice indicatingthat they have been altered from the originals.