Welcome to Transcriptic

This is a new Transcriptic Autoprotocol project. Autoprotocol is Transcriptic's system for writing formal scientific protocols; it's a Scala-based domain-specific language that's meant to make it as easy as possible for you to express your intent and move on with your life.

Getting Started With Autoprotocol

The core of an autoprotocol package is your main object:

package edu.mylab.test

object TestProject extends Protocol {

  def run(config: ProtocolConfig) = {
    // your code goes here.
  }

}

A main object is any Scala object that extends the Protocol trait, and an autoprotocol package can have multiple main objects. The run method is the entry point into your code; from the example above, if you run:

transcriptic launch edu.mylab.test.TestProject

execution will start in the run method defined in your TestProject object.

Analyzing Protocols

Once you've written some protocol logic, you'll want to analyze your code to estimate its runtime and costs:

$ transcriptic analyze edu.mylab.test.TestProject

====> Updating dependencies...
   identical  project/Dependencies.scala
====> Detected Scala sources in app...
====> Compiling...
      (lines omitted)
====> Compilation succeeded.
====> Verification successful for edu.mylab.test.TestProject
      Expected cost: $2.80, maximum observed cost: $3.0

Publishing Packages

Once you have logic that you're happy with the correctness of, you might want to publish it so other researchers can use it in their work. The Labfile in this directory allows you to specify details about the authorship of your code and other details.

name "TestProject"
author "John Appleseed"
email "jappleseed@university.edu"
version "1.0.0"
description "A basic assay for quantitating fluorescence after flux capacitor exposure."

Similarly, you can add dependencies to your Labfile if you use code published by others by simply adding lines to your Labfile:

dependency "edu.stanford.myassay", "project-name", "1.0.0"

Once you declare the dependency there, you can import any code exposed in those associated packages in your logic, and anyone who builds on your code will automatically download your dependencies as well.

Launching Live Protocol Runs

Once you've written and tested your protocol, you can use transcriptic launch to start a live run on Transcriptic Platform:

transcriptic launch edu.mylab.test.TestProject

This will upload your package to the Transcriptic Runner and start a run. You can follow the run's progress via your account dashboard at secure.transcriptic.com/ or by using transcriptic status RUNID or transcriptic logs RUNID [--tail].