{"id":50922581,"url":"https://github.com/aomlomics/labelmaker","last_synced_at":"2026-06-16T20:01:08.262Z","repository":{"id":54370431,"uuid":"150662399","full_name":"aomlomics/labelmaker","owner":"aomlomics","description":"Printable QR labels for samples","archived":false,"fork":false,"pushed_at":"2024-08-13T16:52:16.000Z","size":1747,"stargazers_count":7,"open_issues_count":2,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-13T19:56:28.420Z","etag":null,"topics":["label-sheet","labelmaker","noaa-omics-software","tex"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aomlomics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-28T00:17:05.000Z","updated_at":"2024-08-13T16:52:20.000Z","dependencies_parsed_at":"2023-02-09T09:47:21.128Z","dependency_job_id":null,"html_url":"https://github.com/aomlomics/labelmaker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aomlomics/labelmaker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aomlomics%2Flabelmaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aomlomics%2Flabelmaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aomlomics%2Flabelmaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aomlomics%2Flabelmaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aomlomics","download_url":"https://codeload.github.com/aomlomics/labelmaker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aomlomics%2Flabelmaker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34421326,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["label-sheet","labelmaker","noaa-omics-software","tex"],"created_at":"2026-06-16T20:01:07.347Z","updated_at":"2026-06-16T20:01:08.255Z","avatar_url":"https://github.com/aomlomics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"banner.png\" alt=\"banner\" width=\"100%\"/\u003e\n\n# Labelmaker\n\nMake printable QR code labels for samples using basic information about a project. \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"upgrade.jpg\" width=\"50%\"/\u003e\n\u003c/p\u003e\n\n## Installation\n\n### Option 1: Native install\n\nLabelmaker has been tested on macOS and Linux. It requires the following software:\n\n* Conda\n* TeX Live\n* Labelmaker (this repository)\n\n#### Conda\n\nIf you don't have Conda installed on your machine, install [Miniconda](https://conda.io/miniconda.html) for your operating system (Python 3.7+ version).\n\nCreate a conda environment called `labels` where you will install the package [`qrcode`](https://pypi.org/project/qrcode/):\n\n```\nconda create -n labels pandas click python=3\nsource activate labels\npip install qrcode[pil]\n```\n\n#### TeX Live\n\nTex Live provides a comprehensive TeX system with binaries for macOS, Linux, and Windows; you can download it [here](https://tug.org/texlive/). We will use `lualatex`. A TeX installation is not absolutely required, but it is required to render a label sheet (PDF) from the individual label image files (PNG).\n\n#### Labelmaker\n\nClone the Labelmaker repository to your computer:\n\n```\ngit clone https://github.com/aomlomics/labelmaker\ncd labelmaker\n```\n\n### Option 2: Docker container\n\nTo run Labelmaker inside a Docker container:\n\n1. Install Docker Desktop (Mac, Windows, or Linux) from [Docker.com](https://docs.docker.com/get-docker/).\n2. Open Docker app.\n3. Download the Docker image from [DockerHub](https://hub.docker.com/r/aomlomics/labelmaker) (command below).\n4. Run the Docker image (command below).\n\n```bash\ndocker pull aomlomics/labelmaker\ndocker run -v $HOME:/data -it aomlomics/labelmaker\n```\n\nIf installing on a Mac with an Apple Silicon chip, run the Docker image with the `--platform linux/amd64` command. It will take a few minutes for the image to load the first time it is run.\n\n```bash\ndocker run --platform linux/amd64 -v $HOME:/data -it aomlomics/labelmaker\n```\n\nThe `-v` (volume) flag above allows you to mount a local file system volume (in this case your home directory) to read/write from your container. Note that symbolic links in a mounted volume will not work.\n\n## Execution\n\nMake a sheet of labels in three easy steps:\n\n1. Generate the labels as PNG files.\n2. Generate a composite sheet of labels as a PDF file.\n3. Print!\n\n### Step 1: Generate individual labels (PNG)\n\nRun the command `generate_labels.py` with the required parameters. To learn more about each parameter, run `./generate_labels.py --help`. Two options for sample names are available:\n\n#### Option 1: Provide a list of samples\n\nIf a list of sample names is provided, those sample names are used. The sample list should be provided as a text file with one sample name per line (no spaces). If the number of replicates *N* is greater than 1 (default), replicate labels are produced from 1 to *N*.\n\n```\n./generate_labels.py \\\n  --project ProjectX \\\n  --contact MySurname \\\n  --date 180929 \\\n  --sample_list sample_list.txt \\\n  --num_replicates 1 \\\n  --separator '_'\n```\n\n#### Option 2: Number sequentially\n\nIf no list of sample names is provided, samples are named from 1 to *M*, where *M* is the specified number of samples. If the number of replicates *N* is greater than 1 (default), replicate labels are produced from 1 to *N*.\n\n```\n./generate_labels.py \\\n  --project Challenger1 \\\n  --contact Thomson \\\n  --date 1872–1876 \\\n  --num_samples 5 \\\n  --num_replicates 2\n```\n\n### Step 2: Generate label sheet (PDF)\n\nLabelmaker produces letter size PDF files intended to be printed on Cryo-Babies label sheets, part number [LCRY-1700](https://www.divbio.com/product/lcry-1700) (Diversified Biotech). These are 1.28-inch x 0.5-inch labels in a grid of 5 x 17 labels.\u003csup\u003e[1](#footnote1)\u003c/sup\u003e\n\nLabel sheets are generated from TeX files using `lualatex`. If the number of samples including replicates exceeds 85 (the number of labels per sheet), multiple TeX files will be produced and should be converted to PDF.\n\nRun `lualatex` from the directory containing the PNG files and TeX file using the commands below.\n\n```\ncd /PATH/TO/labelmaker/labels_Project1\nlualatex labelsheet1_Project1_LCRY1700.tex\n\ncd /PATH/TO/labelmaker/labels_Project2\nlualatex labelsheet1_Project2_LCRY1700.tex\n```\n\n### Step 3: Print\n\nOpen the resulting PDF file (e.g., `labelsheet1_Project1_LCRY1700.pdf`) and print on a sheet of Cryo-Babies LCRY-1700 labels.\n\nExample:\n\n\u003cimg src=\"example.png\" height=150\u003e \u003cimg src=\"https://images-na.ssl-images-amazon.com/images/I/41%2BEgB57iTL.jpg\" height=150\u003e\n\n---\n\n\u003csup\u003e\u003ca name=\"footnote1\"\u003e1\u003c/a\u003e\u003c/sup\u003e Although the physical labels are 1.28 x 0.5 inches, the Python code and TeX code are calibrated for labels with size 1.05 x 0.5 inches or an aspect ratio of 2.1:1 (width:height). By default, `generate_labels.py` will produce PNG files with dimensions 1.05 x 0.5 inches. The user should not change these defaults if they intend to use the commands below to generate label sheets.\n\n## Disclaimer\n\nThis repository is a scientific product and is not official communication of the National Oceanic and Atmospheric Administration, or the United States Department of Commerce. All NOAA GitHub project code is provided on an ‘as is’ basis and the user assumes responsibility for its use. Any claims against the Department of Commerce or Department of Commerce bureaus stemming from the use of this GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faomlomics%2Flabelmaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faomlomics%2Flabelmaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faomlomics%2Flabelmaker/lists"}