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]
.