{
"info": {
"author": "Magnus Haraldson H\u00f8ie & Alissa Hummer",
"author_email": "maghoi@dtu.dk",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.10"
],
"description": "AntiFold\n==============================\n\nAntiFold predicts sequences which fit into antibody variable domain structures. The tool outputs residue log-likelihoods in [CSV format](https://github.com/oxpig/AntiFold/blob/master/output/single_pdb/6y1l_imgt.csv), and can sample sequences to a [FASTA format](https://github.com/oxpig/AntiFold/blob/master/output/single_pdb/6y1l_imgt.fasta) directly. Sampled sequences show high structural agreement with experimental structures.\n\nAntiFold is based on the ESM-IF1 model and is fine-tuned on solved and predicted antibody structures from SAbDab and OAS.\n\n- Paper: [arXiv pre-print](https://arxiv.org/abs/2405.03370)\n- Webserver: [OPIG webserver](https://opig.stats.ox.ac.uk/webapps/antifold/)\n- Colab: [](https://colab.research.google.com/drive/1oEDJCHcwxGBeCiYsCm62_OHBXDHnlhb9)\n- Model: [model.pt](https://opig.stats.ox.ac.uk/data/downloads/AntiFold/models/model.pt)\n- License: [BSD 3-Clause](https://opig.stats.ox.ac.uk/data/downloads/AntiFold/LICENSE)\n\n## Webserver\n\nTo try AntiFold without installing it, please see our OPIG webserver:\n[https://opig.stats.ox.ac.uk/webapps/antifold/](https://opig.stats.ox.ac.uk/webapps/antifold/)\n\n## Install and run AntiFold\n\n#### Download and install from Github source (recommended - latest release)\n```bash\nconda create --name antifold python=3.10 -y && conda activate antifold\nconda install -c conda-forge pytorch\ngit clone https://github.com/oxpig/AntiFold && cd AntiFold\npip install .\n```\n\nGPU only: install using environment.yml\n\n```bash\nconda create env -f environment.yml\npython -m pip install .\n```\n\nDepending on your CUDA version you may need to change the dependency `pytorch-cuda=12.1` in the environment.yml file.\nDetailed instructions on how to correctly install pytorch for your system can be found [here](https://pytorch.org/get-started/locally/)\n\n#### Run AntiFold (inverse-folding probabilities, sample sequences)\n```bash\n# Run AntiFold on single PDB/CIF file\n# Nb: Assumes first chain heavy, second chain light\npython antifold/main.py \\\n --pdb_file data/pdbs/6y1l_imgt.pdb\n\n# Antibody-antigen complex\npython antifold/main.py \\\n --pdb_file data/antibody_antigen/3hfm.pdb \\\n --heavy_chain H \\\n --light_chain L \\\n --antigen_chain Y\n\n# Nanobody or single-chain\npython antifold/main.py \\\n --pdb_file data/nanobody/8oi2_imgt.pdb \\\n --nanobody_chain B\n\n# Folder of PDB/CIFs\n# Nb: Assumes first chain heavy, second light\npython antifold/main.py \\\n --pdb_dir data/pdbs\n\n# Specify chains to run in a CSV file (e.g. antibody-antigen complex)\npython antifold/main.py \\\n --pdb_dir data/antibody_antigen \\\n --pdbs_csv data/antibody_antigen.csv\n\n# Sample sequences 10x\npython antifold/main.py \\\n --pdb_file data/pdbs/6y1l_imgt.pdb \\\n --heavy_chain H \\\n --light_chain L \\\n --num_seq_per_target 10 \\\n --sampling_temp \"0.2\" \\\n --regions \"CDR1 CDR2 CDR3\"\n\n# Run all chains with ESM-IF1 model weights\npython antifold/main.py \\\n --pdb_dir data/pdbs \\\n --esm_if1_mode\n```\n\n## Jupyter notebook\nNotebook: notebook.ipynb\n\nColab: [](https://colab.research.google.com/drive/1oEDJCHcwxGBeCiYsCm62_OHBXDHnlhb9)\n\n```python\nimport antifold\nimport antifold.main\n\n# Load model\nmodel = antifold.main.load_model()\n\n# PDB directory\npdb_dir = \"data/pdbs\"\n\n# Assumes first chain heavy, second chain light\npdbs_csv = antifold.main.generate_pdbs_csv(pdb_dir, max_chains=2)\n\n# Sample from PDBs\ndf_logits_list = antifold.main.get_pdbs_logits(\n model=model,\n pdbs_csv_or_dataframe=pdbs_csv,\n pdb_dir=pdb_dir,\n)\n\n# Output log probabilites\ndf_logits_list[0]\n```\n\n## Input parameters\nRequired parameters:\n```text\nInput PDBs should be antibody variable domain structures (IMGT positions 1-128).\n\nIf no chains are specified, the first two chains will be assumed to be heavy light.\nIf custom_chain_mode is set, all (10) chains will be run.\n\n- Option 1: PDB file (--pdb_file). We recommend specifying heavy and light chain (--heavy_chain and --light_chain)\n- Option 2: PDB folder (--pdb_dir) + CSV file specifying chains (--pdbs_csv)\n- Option 3: PDB folder, infer 1st chain heavy, 2nd chain light\n```\n\nParameters for generating new sequences:\n```text\nPDBs should be IMGT annotated for the sequence sampling regions to be valid.\n\n- Number of sequences to generate (--num_seq_per_target)\n- Region to mutate (--region) based on inverse folding probabilities. Select from list in IMGT_dict (e.g. 'CDRH1 CDRH2 CDRH3')\n- Sampling temperature (--sampling_temp) controls generated sequence diversity, by scaling the inverse folding probabilities before sampling. Temperature = 1 means no change, while temperature ~ 0 only samples the most likely amino-acid at each position (acts as argmax).\n```\n\nOptional parameters:\n```text\n- Multi-chain mode for including antigen or other chains (--custom_chain_mode)\n- Extract latent representations of PDB within model (--extract_embeddings)\n- Use ESM-IF1 instead of AntiFold model weights (--esm_if1_mode), enables custom_chain_mode\n```\n\n## Example output\nFor example webserver output, see:\n[https://opig.stats.ox.ac.uk/webapps/antifold/results/example_job/](https://opig.stats.ox.ac.uk/webapps/antifold/results/example_job/)\n\nOutput CSV with residue log-probabilities: Residue probabilities: 6y1l_imgt.csv\n- pdb_pos - PDB residue number\n- pdb_chain - PDB chain\n- aa_orig - PDB residue (e.g. 112)\n- aa_pred - Top predicted residue by AntiFold (i.e. argmax) for this position\n- pdb_posins - PDB residue number with insertion code (e.g. 112A)\n- perplexity - Inverse folding tolerance (higher is more tolerant) to mutations. See paper for more details.\n- Amino-acids - Inverse folding scores (log-likelihood) for the given position\n```csv\npdb_pos,pdb_chain,aa_orig,aa_pred,pdb_posins,perplexity,A,C,D,E,F,G,H,I,K,L,M,N,P,Q,R,S,T,V,W,Y\n2,H,V,M,2,1.6488,-4.9963,-6.6117,-6.3181,-6.3243,-6.7570,-4.2518,-6.7514,-5.2540,-6.8067,-5.8619,-0.0904,-6.5493,-4.8639,-6.6316,-6.3084,-5.1900,-5.0988,-3.7295,-8.0480,-7.3236\n3,H,Q,Q,3,1.3889,-10.5258,-12.8463,-8.4800,-4.7630,-12.9094,-11.0924,-5.6136,-10.9870,-3.1119,-8.1113,-9.4382,-6.2246,-13.3660,-0.0701,-4.9957,-10.0301,-6.8618,-7.5810,-13.6721,-11.4157\n4,H,L,L,4,1.0021,-13.3581,-12.6206,-17.5484,-12.4801,-9.8792,-13.6382,-14.8609,-13.9344,-16.4080,-0.0002,-9.2727,-16.6532,-14.0476,-12.5943,-15.4559,-16.9103,-17.0809,-10.5670,-13.5334,-13.4324\n...\n```\n\nOutput FASTA file with sampled sequences: 6y1l_imgt.fasta\n- T: Temperature used for design\n- score: average log-odds of residues in the sampled region\n- global_score: average log-odds of all residues (IMGT positions 1-128)\n- regions: regions selected for design\n- seq_recovery: # mutations / total sequence length\n- mutations: # mutations from original PDB sequence\n```fasta\n>6y1l_imgt , score=0.2934, global_score=0.2934, regions=['CDR1', 'CDR2', 'CDRH3'], model_name=AntiFold, seed=42\nVQLQESGPGLVKPSETLSLTCAVSGYSISSGYYWGWIRQPPGKGLEWIGSIYHSGSTYYN\nPSLKSRVTISVDTSKNQFSLKLSSVTAADTAVYYCAGLTQSSHNDANWGQGTLVTVSS/V\nLTQPPSVSAAPGQKVTISCSGSSSNIGNNYVSWYQQLPGTAPKRLIYDNNKRPSGIPDRF\nSGSKSGTSATLGITGLQTGDEADYYCGTWDSSLNPVFGGGTKLEIKR\n> T=0.20, sample=1, score=0.3930, global_score=0.1869, seq_recovery=0.8983, mutations=12\nVQLQESGPGLVKPSETLSLTCAVSGASITSSYYWGWIRQPPGKGLEWIGSIYYSGSTYYN\nPSLKSRVTISVDTSKNQFSLKLSSVTAADTAVYYCAGLYGSPWSNPYWGQGTLVTVSS/V\nLTQPPSVSAAPGQKVTISCSGSSSNIGNNYVSWYQQLPGTAPKRLIYDNNKRPSGIPDRF\nSGSKSGTSATLGITGLQTGDEADYYCGTWDSSLNPVFGGGTKLEIKR\n...\n```\n\n## Usage\n```bash\nusage:\n # Predict on example PDBs in folder\npython antifold/main.py \\\n --pdb_file data/antibody_antigen/3hfm.pdb \\\n --heavy_chain H \\\n --light_chain L \\\n --antigen_chain Y # Optional\n\nPredict inverse folding probabilities for antibody variable domain, and sample sequences with maintained fold.\nPDB structures should be IMGT-numbered, paired heavy and light chain variable domains (positions 1-128).\n\nFor IMGT numbering PDBs use SAbDab or https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabpred/anarci/\n\noptions:\n -h, --help show this help message and exit\n --pdb_file PDB_FILE Input PDB file (for single PDB predictions)\n --heavy_chain HEAVY_CHAIN\n Ab heavy chain (for single PDB predictions)\n --light_chain LIGHT_CHAIN\n Ab light chain (for single PDB predictions)\n --antigen_chain ANTIGEN_CHAIN\n Antigen chain (optional)\n --pdbs_csv PDBS_CSV Input CSV file with PDB names and H/L chains (multi-PDB predictions)\n --pdb_dir PDB_DIR Directory with input PDB files (multi-PDB predictions)\n --out_dir OUT_DIR Output directory\n --regions REGIONS Space-separated regions to mutate. Default 'CDR1 CDR2 CDR3H'\n --num_seq_per_target NUM_SEQ_PER_TARGET\n Number of sequences to sample from each antibody PDB (default 0)\n --sampling_temp SAMPLING_TEMP\n A string of temperatures e.g. '0.20 0.25 0.50' (default 0.20). Sampling temperature for amino acids. Suggested values 0.10, 0.15, 0.20, 0.25, 0.30. Higher values will lead to more diversity.\n --limit_variation Limit variation to as many mutations as expected from temperature sampling\n --extract_embeddings Extract per-residue embeddings from AntiFold / ESM-IF1\n --custom_chain_mode Run all specified chains (for antibody-antigen complexes or any combination of chains)\n --exclude_heavy Exclude heavy chain from sampling\n --exclude_light Exclude light chain from sampling\n --batch_size BATCH_SIZE\n Batch-size to use\n --num_threads NUM_THREADS\n Number of CPU threads to use for parallel processing (0 = all available)\n --seed SEED Seed for reproducibility\n --model_path MODEL_PATH\n Alternative model weights (default models/model.pt). See --use_esm_if1_weights flag to use ESM-IF1 weights instead of AntiFold\n --esm_if1_mode Use ESM-IF1 weights instead of AntiFold\n --verbose VERBOSE Verbose printing\n```\n\n## IMGT regions dict\nUsed to specify which regions to mutate in an IMGT numbered PDB\n- IMGT numbered PDBs: [https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabdab](https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabdab)\n- Renumber existing PDBs with ANARCI: [https://github.com/oxpig/ANARCI](https://github.com/oxpig/ANARCI)\n- Read more: [https://www.imgt.org/IMGTScientificChart/Numbering/IMGTIGVLsuperfamily.html](https://www.imgt.org/IMGTScientificChart/Numbering/IMGTIGVLsuperfamily.html)\n\n```python\nIMGT_dict = {\n \"all\": range(1, 128 + 1),\n \"allH\": range(1, 128 + 1),\n \"allL\": range(1, 128 + 1),\n \"FWH\": list(range(1, 26 + 1)) + list(range(40, 55 + 1)) + list(range(66, 104 + 1)),\n \"FWL\": list(range(1, 26 + 1)) + list(range(40, 55 + 1)) + list(range(66, 104 + 1)),\n \"CDRH\": list(range(27, 39)) + list(range(56, 65 + 1)) + list(range(105, 117 + 1)),\n \"CDRL\": list(range(27, 39)) + list(range(56, 65 + 1)) + list(range(105, 117 + 1)),\n \"FW1\": range(1, 26 + 1),\n \"FWH1\": range(1, 26 + 1),\n \"FWL1\": range(1, 26 + 1),\n \"CDR1\": range(27, 39),\n \"CDRH1\": range(27, 39),\n \"CDRL1\": range(27, 39),\n \"FW2\": range(40, 55 + 1),\n \"FWH2\": range(40, 55 + 1),\n \"FWL2\": range(40, 55 + 1),\n \"CDR2\": range(56, 65 + 1),\n \"CDRH2\": range(56, 65 + 1),\n \"CDRL2\": range(56, 65 + 1),\n \"FW3\": range(66, 104 + 1),\n \"FWH3\": range(66, 104 + 1),\n \"FWL3\": range(66, 104 + 1),\n \"CDR3\": range(105, 117 + 1),\n \"CDRH3\": range(105, 117 + 1),\n \"CDRL3\": range(105, 117 + 1),\n \"FW4\": range(118, 128 + 1),\n \"FWH4\": range(118, 128 + 1),\n \"FWL4\": range(118, 128 + 1),\n}\n```\n\n## Citing this work\n\nThe code and data in this package is based on the following paper AntiFold. If you use it, please cite:\n\n```tex\n@misc{antifold,\n title={AntiFold: Improved antibody structure-based design using inverse folding},\n author={Magnus Haraldson H\u00f8ie and Alissa Hummer and Tobias H. Olsen and Broncio Aguilar-Sanjuan and Morten Nielsen and Charlotte M. Deane},\n year={2024},\n eprint={2405.03370},\n archivePrefix={arXiv},\n primaryClass={q-bio.BM}\n}\n```\n",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": null,
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"dynamic": null,
"home_page": "https://github.com/oxpig/AntiFold/",
"keywords": null,
"license": null,
"maintainer": null,
"maintainer_email": null,
"name": "antifold",
"package_url": "https://pypi.org/project/antifold/",
"platform": null,
"project_url": "https://pypi.org/project/antifold/",
"project_urls": {
"Homepage": "https://github.com/oxpig/AntiFold/"
},
"provides_extra": null,
"release_url": "https://pypi.org/project/antifold/0.3.1/",
"requires_dist": [
"torch-geometric==2.4.0",
"torch==2.3.1",
"biopython==1.83",
"biotite==0.38",
"pygam==0.9.*",
"numpy==1.26.*",
"pandas==2.*"
],
"requires_python": null,
"summary": "Inverse folding of antibodies",
"version": "0.3.1",
"yanked": false,
"yanked_reason": null
},
"last_serial": 24301227,
"releases": {
"0.2.0": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b1ad79f5ebb94aa0dd2b035ea7698c869f89b615872612db21b6b0fa3f07d25c",
"md5": "aef35fcd57d0bf3017d64d5b80017afe",
"sha256": "0812cb2aa25d39150f8329c684acad7838d18cfa4fb336c5d0c894dfbbc5a053"
},
"downloads": -1,
"filename": "antifold-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "aef35fcd57d0bf3017d64d5b80017afe",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 68892,
"upload_time": "2024-05-21T14:26:48",
"upload_time_iso_8601": "2024-05-21T14:26:48.164070Z",
"url": "https://files.pythonhosted.org/packages/b1/ad/79f5ebb94aa0dd2b035ea7698c869f89b615872612db21b6b0fa3f07d25c/antifold-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b6e9b7685c32bcfbbc97c0e087e78872eee853e1ad2a37ce62714225d33683ec",
"md5": "9390c6862d9a2e9efb31e404b9b3c932",
"sha256": "6035a6967bac867c3918e157e7043c1172c7d1ad0e909b6950335eed60eb245a"
},
"downloads": -1,
"filename": "antifold-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "9390c6862d9a2e9efb31e404b9b3c932",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60262,
"upload_time": "2024-05-21T14:26:50",
"upload_time_iso_8601": "2024-05-21T14:26:50.573201Z",
"url": "https://files.pythonhosted.org/packages/b6/e9/b7685c32bcfbbc97c0e087e78872eee853e1ad2a37ce62714225d33683ec/antifold-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"blake2b_256": "806414da79ac54be2d9cb854e7b2ccfdc374cda23e6d7af7fa78d4f03f74a202",
"md5": "4b051863711185f82a08d0ce7d1c12ca",
"sha256": "e58528a17a903767d73672846d499a779f75b3bbde4a2f0fdf7a74b43bbb6c71"
},
"downloads": -1,
"filename": "antifold-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4b051863711185f82a08d0ce7d1c12ca",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 73045,
"upload_time": "2024-05-21T16:16:00",
"upload_time_iso_8601": "2024-05-21T16:16:00.466817Z",
"url": "https://files.pythonhosted.org/packages/80/64/14da79ac54be2d9cb854e7b2ccfdc374cda23e6d7af7fa78d4f03f74a202/antifold-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9e94f0ed506fe45998cc04aa4d3a5e6254d2c360ab09e46633375f1f032aa9b0",
"md5": "0fd1166e8f0e93604418f77897b4f78a",
"sha256": "f6e58ec165b9e1df8c9d2693cbdddd46627dcb1aa57c2ae8d370f68803cad236"
},
"downloads": -1,
"filename": "antifold-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "0fd1166e8f0e93604418f77897b4f78a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 63569,
"upload_time": "2024-05-21T16:16:02",
"upload_time_iso_8601": "2024-05-21T16:16:02.656297Z",
"url": "https://files.pythonhosted.org/packages/9e/94/f0ed506fe45998cc04aa4d3a5e6254d2c360ab09e46633375f1f032aa9b0/antifold-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.2.2": [
{
"comment_text": "",
"digests": {
"blake2b_256": "af88957b7f4850cda783c0e89659f18c6e29610895ee372731374d7a01388fdc",
"md5": "2959cf02b94badd305b7f29963781961",
"sha256": "bcb379886efa89a7fa76a5a2fc9174b0506b140cb183cf5a473d90a7319a341f"
},
"downloads": -1,
"filename": "antifold-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2959cf02b94badd305b7f29963781961",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 73047,
"upload_time": "2024-05-21T16:36:31",
"upload_time_iso_8601": "2024-05-21T16:36:31.146530Z",
"url": "https://files.pythonhosted.org/packages/af/88/957b7f4850cda783c0e89659f18c6e29610895ee372731374d7a01388fdc/antifold-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ea40303549e7699d7f4ba45da150dc9c306add88179186098f5c8d20ee8f4239",
"md5": "ae61ed5dea292cdab4def11dca2ef370",
"sha256": "745be7318bebbb16f03cd2e5acd7160763158ca0a83e8d03cbb80da1ebdfae0f"
},
"downloads": -1,
"filename": "antifold-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "ae61ed5dea292cdab4def11dca2ef370",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 63558,
"upload_time": "2024-05-21T16:36:34",
"upload_time_iso_8601": "2024-05-21T16:36:34.192493Z",
"url": "https://files.pythonhosted.org/packages/ea/40/303549e7699d7f4ba45da150dc9c306add88179186098f5c8d20ee8f4239/antifold-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.2.3": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a8f963fa4dba4d469021b749f19fe6faddf0c3c38add48a7e88c988ea4357018",
"md5": "c8a7c387037f8161c2c2c34751bea2f0",
"sha256": "01d72f6f9340e52efe1d2136c5aaace68065860ffc680337dc3d1a8f7bdd1239"
},
"downloads": -1,
"filename": "antifold-0.2.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c8a7c387037f8161c2c2c34751bea2f0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 73070,
"upload_time": "2024-05-21T17:11:43",
"upload_time_iso_8601": "2024-05-21T17:11:43.827547Z",
"url": "https://files.pythonhosted.org/packages/a8/f9/63fa4dba4d469021b749f19fe6faddf0c3c38add48a7e88c988ea4357018/antifold-0.2.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c1b77fe70256894fe952c8fdbc66e0e223d9a08197424f69a13ec92f0e776fc8",
"md5": "f1ac8e39a3fa8906efb047e902b4651e",
"sha256": "39e2082a0444bb278a828ccba88637c7a9d167446ae0510c177543029b461981"
},
"downloads": -1,
"filename": "antifold-0.2.3.tar.gz",
"has_sig": false,
"md5_digest": "f1ac8e39a3fa8906efb047e902b4651e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 63567,
"upload_time": "2024-05-21T17:11:47",
"upload_time_iso_8601": "2024-05-21T17:11:47.430112Z",
"url": "https://files.pythonhosted.org/packages/c1/b7/7fe70256894fe952c8fdbc66e0e223d9a08197424f69a13ec92f0e776fc8/antifold-0.2.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3a6710a93b87c2d569ee2a0e599c9da16e61269771ae1bf4cebfbd063e1a98b8",
"md5": "096816d88c1f520348cbeb18d5a18e99",
"sha256": "c79997c8dc879ad1e33a1ee3818cf5fd53feeccb6b103f3a39755cd2f7bd3a7a"
},
"downloads": -1,
"filename": "antifold-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "096816d88c1f520348cbeb18d5a18e99",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 78219,
"upload_time": "2024-07-26T09:19:48",
"upload_time_iso_8601": "2024-07-26T09:19:48.834073Z",
"url": "https://files.pythonhosted.org/packages/3a/67/10a93b87c2d569ee2a0e599c9da16e61269771ae1bf4cebfbd063e1a98b8/antifold-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8274f8644bad5f1b6b9fcbb1caac52cb11888b764fb8011845ca6a144206af89",
"md5": "f217568dfa7d3428455cd6bad98760d3",
"sha256": "34b7d4c048b05392f2107f3761271fe2337bf362f4bff41abe8fd75e7f8c859b"
},
"downloads": -1,
"filename": "antifold-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "f217568dfa7d3428455cd6bad98760d3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 65065,
"upload_time": "2024-07-26T09:19:50",
"upload_time_iso_8601": "2024-07-26T09:19:50.473655Z",
"url": "https://files.pythonhosted.org/packages/82/74/f8644bad5f1b6b9fcbb1caac52cb11888b764fb8011845ca6a144206af89/antifold-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c77be82963bd1fe9e407869a7fad285d79d1d96c5ae8ec7caad0f0b84e4b5467",
"md5": "6e781c56c9b05966852f6ee0611a8053",
"sha256": "5b0cb1b314f086e13f6257fe5b4a4a15153effe7b2b9fc7156950183aa33b4dc"
},
"downloads": -1,
"filename": "antifold-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6e781c56c9b05966852f6ee0611a8053",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 78223,
"upload_time": "2024-07-26T09:25:40",
"upload_time_iso_8601": "2024-07-26T09:25:40.444865Z",
"url": "https://files.pythonhosted.org/packages/c7/7b/e82963bd1fe9e407869a7fad285d79d1d96c5ae8ec7caad0f0b84e4b5467/antifold-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2c4848847175e97d1f8e0027afc9e4c0c1b9846543efc6b8adfefeed240ae47b",
"md5": "eabb810405cf521e8ad22f4c3fc7bc48",
"sha256": "bb4b4fa5c31f793e7575a8bf479ae5cf4d6c7ac09951b0af1ca98957bb1097b3"
},
"downloads": -1,
"filename": "antifold-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "eabb810405cf521e8ad22f4c3fc7bc48",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 65095,
"upload_time": "2024-07-26T09:25:42",
"upload_time_iso_8601": "2024-07-26T09:25:42.492145Z",
"url": "https://files.pythonhosted.org/packages/2c/48/48847175e97d1f8e0027afc9e4c0c1b9846543efc6b8adfefeed240ae47b/antifold-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c77be82963bd1fe9e407869a7fad285d79d1d96c5ae8ec7caad0f0b84e4b5467",
"md5": "6e781c56c9b05966852f6ee0611a8053",
"sha256": "5b0cb1b314f086e13f6257fe5b4a4a15153effe7b2b9fc7156950183aa33b4dc"
},
"downloads": -1,
"filename": "antifold-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6e781c56c9b05966852f6ee0611a8053",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 78223,
"upload_time": "2024-07-26T09:25:40",
"upload_time_iso_8601": "2024-07-26T09:25:40.444865Z",
"url": "https://files.pythonhosted.org/packages/c7/7b/e82963bd1fe9e407869a7fad285d79d1d96c5ae8ec7caad0f0b84e4b5467/antifold-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2c4848847175e97d1f8e0027afc9e4c0c1b9846543efc6b8adfefeed240ae47b",
"md5": "eabb810405cf521e8ad22f4c3fc7bc48",
"sha256": "bb4b4fa5c31f793e7575a8bf479ae5cf4d6c7ac09951b0af1ca98957bb1097b3"
},
"downloads": -1,
"filename": "antifold-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "eabb810405cf521e8ad22f4c3fc7bc48",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 65095,
"upload_time": "2024-07-26T09:25:42",
"upload_time_iso_8601": "2024-07-26T09:25:42.492145Z",
"url": "https://files.pythonhosted.org/packages/2c/48/48847175e97d1f8e0027afc9e4c0c1b9846543efc6b8adfefeed240ae47b/antifold-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"vulnerabilities": []
}