All Projects → jvrana → benchling-api

jvrana / benchling-api

Licence: MIT License
A python wrapper for the benchling api

Programming Languages

python
139335 projects - #7 most used programming language
CSS
56736 projects
Makefile
30231 projects
HTML
75241 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to benchling-api

gblastn
G-BLASTN is a GPU-accelerated nucleotide alignment tool based on the widely used NCBI-BLAST.
Stars: ✭ 52 (+33.33%)
Mutual labels:  dna, dna-sequences
Repo-Bio
Binomica Public Repository for Biological Parts
Stars: ✭ 21 (-46.15%)
Mutual labels:  dna, dna-sequences
PHAT
Pathogen-Host Analysis Tool - A modern Next-Generation Sequencing (NGS) analysis platform
Stars: ✭ 17 (-56.41%)
Mutual labels:  dna
cobs
COBS - Compact Bit-Sliced Signature Index (for Genomic k-Mer Data or q-Grams)
Stars: ✭ 64 (+64.1%)
Mutual labels:  dna
pymonzo
An - dare I say it - awesome Python Monzo public API wrapper.
Stars: ✭ 18 (-53.85%)
Mutual labels:  api-wrapper
meetupr
R interface to the meetup.com API
Stars: ✭ 76 (+94.87%)
Mutual labels:  api-wrapper
COVID19Py
A tiny Python package for easy access to up-to-date Coronavirus (COVID-19, SARS-CoV-2) cases data.
Stars: ✭ 86 (+120.51%)
Mutual labels:  api-wrapper
discord.bat
🗑️ the BEST discord lib
Stars: ✭ 38 (-2.56%)
Mutual labels:  api-wrapper
pterodactyl-sdk
Pterodactyl Panel PHP SDK/API wrapper
Stars: ✭ 27 (-30.77%)
Mutual labels:  api-wrapper
hikari-lightbulb
The official unofficial command handler for the Python discord API wrapper library, Hikari.
Stars: ✭ 152 (+289.74%)
Mutual labels:  api-wrapper
cablecuttr
An R wrapper for CanIStream.It API
Stars: ✭ 17 (-56.41%)
Mutual labels:  api-wrapper
enformer-pytorch
Implementation of Enformer, Deepmind's attention network for predicting gene expression, in Pytorch
Stars: ✭ 146 (+274.36%)
Mutual labels:  dna-sequences
hlatyping
Precision HLA typing from next-generation sequencing data
Stars: ✭ 28 (-28.21%)
Mutual labels:  dna
github-api-plugin
This plugin packages stock github-api library
Stars: ✭ 20 (-48.72%)
Mutual labels:  api-wrapper
Swiftfall
Wrapper for Scryfall API written in Swift
Stars: ✭ 21 (-46.15%)
Mutual labels:  api-wrapper
PSURLScanio
🔎 Use urlscan.io with PowerShell!
Stars: ✭ 31 (-20.51%)
Mutual labels:  api-wrapper
visualize-dna-sequences
Visualizing DNA Sequences via Javascript
Stars: ✭ 51 (+30.77%)
Mutual labels:  dna
Pyblox
An API wrapper for Roblox written in Python. (Receives Updates)
Stars: ✭ 30 (-23.08%)
Mutual labels:  api-wrapper
csharp-ovh
Thin wrapper around OVH's APIs. Handles all the hard work including credential creation and requests signing
Stars: ✭ 21 (-46.15%)
Mutual labels:  api-wrapper
naf
Nucleotide Archival Format - Compressed file format for DNA/RNA/protein sequences
Stars: ✭ 35 (-10.26%)
Mutual labels:  dna

BenchlingAPI

PyPI version

The (unofficial) python API wrapper for Benchling. For more information, see documentation at https://klavinslab.github.io/benchling-api/index.

Installation

pip install benchlingapi -U

Getting Started

Initialize a session using your Benchling-provided API key:

from benchlingapi import Session
session = Session("your_secret_benchling_api_key")

From there, you can access various models:

session.DNASequence
session.AASequence
session.Oligo
session.Folder
session.Project
session.Registry
session.Translation
session.EntitySchema
session.Batch
session.CustomEntity

Finding models:

# get one model
dna = session.DNASequence.one()

# find a specific model by its id
dna = session.DNASequence.find('sdg_4tg23')

# get the last 50 amino acids
proteins = session.AASequence.last(50)

# get a registry by name
registry = session.Registry.find_by_name("Klavins Lab Registry")

Updating models:

dna = session.DNASequence.one()
dna.name = "My new name"
dna.bases = "AGGTAGGGTAGGGCCAGAGA"

# update the sequence on the server
dna.update()

Saving new models:

folder = session.Folder.find_by_name("My API Folder")
dna = session.DNASequence(
    name = 'my new dna',
    bases = 'AGGTAGGATGGCCA',
    folder_id = folder.id,
    is_circular = False
)

# save the dna to your Benchling account
dna.save()

Registering models to your registry:

dna.set_schema("My DNA Schema")
dna.register()

See the documentation for more information: https://klavinslab.github.io/benchling-api/index

Testing

Testing is done using pytest. Tests will create live requests to a Benchling account. Since testing is done live, a Benchling account will need to be setup along with testing data.

To run tests, you must have a Benchling Account with an API key. Tests require a file in 'tests/secrets/config.json' with the following format:

{
  "credentials": {
    "api_key": "asdahhjwrthsdfgadfadfgadadsfa"
  },
  "sharelinks": [
    "https://benchling.com/s/seq-asdfadsfaee"
  ],
  "project": {
    "name": "API"
  },
  "trash_folder": {
    "name": "API_Trash"
  },
  "inventory_folder": {
    "name": "API_Inventory"
  }
}

On the Benchling side of things, in the account liked to the credentials["api_key"], you must have a project corresponding to the project["name"] value above. Within this project, you should have two folder corresponding to the trash_folder and inventory_folder values above. Additionally, you should have at least one example of an AminoAcid, DNASequence, CustomEntity, and Oligo stored within your inventory_folder. Tests will copy the examples from the inventory_folder for downstream tests. After the tests, conclude, inventory in the trash_folder will get archived.

Happy Cloning!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].