DashboardWorkspaceCollaborationPublishingExploreInterfaceadvancedFAQ
GeneralUploading and RunningPublishingTechnical DetailsQuota

General

How do I upload my code to Code Ocean?

To upload your code, first create an algorithm to contain it: Log in and go to your dashboard, where you will find the New Algorithm button. Click it and choose the appropriate language from the dropdown (you can add more languages later if you need to). You will then be taken to a new private workspace, to which you can upload your files, and from which you can run and publish your code!

Who owns the rights to my algorithm, code, and data?

You keep all rights to your content! You can choose under what license to publish your algorithm so other users know how they can and cannot use it.

How can I share my algorithm with other people?

Algorithms on Code Ocean start out private and visible to you only. You can invite your collaborators to view or edit any of your algorithms through the Collaborate tab. If you’d like your algorithm to be publicly accessible, you are welcome to publish it (see Publishing). Once you’ve published an algorithm, you can send the link to anyone, share it on social media or any other way you like!

What are third-party cookies? Why won't the widget let me log in and run code?

Cookies are pieces of data that websites, including Code Ocean, store in your browser so they can remember who you are. Some advertisers use this functionality to track users and so browsers have started blocking cookies from third parties automatically. This helps protect your privacy but also breaks many honest companies' embedded content.

Whether your browser blocks 3rd party cookies by default or whether you enabled blocking yourself, if you'd like to access the full functionality of our widget, including running and editing code, you'll need to tell your browser to allow codeocean.com to access its cookies. 

Follow the instructions from your browser vendor to take full advantage of our widget: Safari, Chrome, Firefox

Uploading and Running

What is the difference between code and data files?

Code consists of all the algorithm's source files, i.e. anything that's executable. Data is any other files that the code operates on. When an algorithm runs, code will be found in the /code folder, while its data will be found in /data. (We recommend using the relative path ../data  to make it easier for you and your users to run your code locally.)

While there is nothing stopping you from mixing your code and data, there are certain advantages to the separation - first and foremost, clearly communicating what is the essence of your innovation. Another advantage is making it easier for you and other users of your algorithm to swap out your sample data for the data they’re interested in. Finally, you can assign different licenses to your code and data if the situation calls for it.

What's the best way to take advantage of a dataset that's very large and/or popular?

If you can’t find the dataset you need on our list of datasets, please contact us and we’ll add it for you!
Not having to upload the dataset will save you time and storage space (datasets don't count against your quota), especially if you use the same dataset in more than one algorithm.

Where are my result files?

At the end of a successful run, any files that exist in the ../results (i.e. /results) folder are made available in the Results pane. Make sure any files your code generates that you consider to be results end up in that folder, otherwise you won't be able to access them.

Where is the result file "SetupLog" coming from? What does it contain?

If you’ve customized your run environment in any way, for example by adding packages, the system will build your environment and save the console output to a file called SetupLog in your results.

Note that if the system can find this custom environment in its cache, it will use that and you will not see SetupLog in your results. (This will happen, for example, when you run your algorithm a second time without modifying its environment.)

What happens if I log out, close a tab, or turn my computer off while my code is running?

Your code will continue running until it terminates or the run is cancelled. The results will be waiting for you when you return.

Publishing

How does Code Ocean's publishing process work?

Once you’ve got your algorithm running to your satisfaction, simply fill out the details and pick an image that best represents your algorithm, then simply press the Publish button. Our team will quickly verify that everything is in order before publishing your algorithm for everyone to try, share, and cite.

What does Code Ocean verify before publishing an algorithm?

Generally speaking, our aim is to showcase your work and its computational reproducibility in the best possible way. To that end, we want to make sure you’re taking full advantage of the platform and its capabilities. We’ll also try to catch any last-minute mistakes or typos that might have slipped under the radar.

Here are a couple of examples for the kind of things we would check:

How can I feature my algorithm on my personal or university website?

Once your algorithm has been verified and published by Code Ocean, click the share button on the algorithm page to find the embed option; this will provide you with a snippet of HTML code you can use on any website.

What happens to an algorithm once published?

Beyond becoming publicly accessible and searchable, published algorithms are frozen, along with their entire environment (including dependencies, any code files, and results) and archived for perpetuity. Any modifications you or others make will not affect the published algorithm.

Can I edit or delete a published algorithm?

A published algorithm cannot be deleted, generally speaking. You can make modifications or duplicate the algorithm - both will only affect your personal copy of the algorithm. If you have a reason to believe that an algorithm should be removed immediately please contact us at contact@codeocean.com.

Technical Details

Which programming languages does the platform support?

C/C++, Fortran, Java, Julia, Lua, MATLAB, Octave, Perl, Python and R. If you have an algorithm you’d like to publish in a language we don’t currently support, please let us know!

Does Code Ocean support using multiple languages in the same algorithm?

Yes! You can actually mix as many languages as you want in the same algorithm. Simply pick the first language (if one of the language is MATLAB, choose it first) and then install the second language via apt-get by adding the appropriate package to your Run Environment, e.g.:

Does the platform offer version control?

Not at the moment. Our aim is to provide you with the tools you need to adapt your existing algorithms to a cloud-based reproducible environment. It is not our main focus to create a fully-featured desktop-grade editor or IDE (Integrated Development Environment).

Having said that, you can publish new versions of your algorithm and link them to the same article. The new versions will be easily discoverable by users searching for your algorithm’s previous version or the article itself.

Do you support running code on the GPU?

Of course! Just pick the appropriate language (e.g. Python for TensorFlow, Lua for Torch, C++ for plain CUDA etc.) and select the base environment you want in the run environment dialog.

Which toolboxes are included with MATLAB?

Bioinformatics Toolbox, Communications System Toolbox, Computer Vision System Toolbox, Control System Toolbox, DSP System Toolbox, Image Processing Toolbox, Neural Network Toolbox, Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, Statistics and Machine Learning Toolbox, and Wavelet Toolbox. If you require a toolbox which is not part of this list, please contact us at support@codeocean.com.

How can I upgrade built-in packages (e.g. pip)?

Run Environment ➝ Show all packages, click the current version number shown to replace it with the required version. You can also enter “latest” if you simply want the latest version available.

What is apt-get? How do I install Linux packages?

apt-get is the command-line tool for working with APT (Advanced Package Tool) software packages. It is the preferred way of installing packages on the Linux distributions Code Ocean uses (Ubuntu and Debian).

Most often you'll know the name of the package you need from the homepage or documentation of the code or higher-level library you're using. In other times, you might need to search to find the exact name. Feel free to reach out via live chat or email if you need help finding a package.

What machine will my algorithm run on?

At minimum, your algorithm will be running on an 8-core 2.3GHz machine with 32gb memory. Algorithms that require a GPU will have access to a NVIDIA K80 GPU.

How can I generate interactive charts from my MATLAB/Python/R code?

Code Ocean offers seamless integration with Plotly, a library that lets you generate HTML charts from your favorite programming language. Please refer to Plotly’s documentation for information on using the library.

Quota

How is computing time measured?

Your computing time consists of the sum total time across all your runs, from start to finish (or cancellation). Time logged into the platform, or editing code without running it, will not count against your quota.

How is storage space measured?

All code, data (excluding datasets), and result files across your algorithms - with the exception of your published algorithms - are counted against your storage quota.

How can I know how much computing time/storage space I’ve used so far?

To see a summary of how far you are into your monthly quota, hover your mouse cursor over the speedometer icon at the top right of your dashboard or bottom right of any code page.

What happens when I run out of computation time or storage space?

A message will pop up alerting you of the situation. You won’t be able to initiate any further runs or upload any files until the beginning of your next billing cycle, or until you upgrade your plan.

Why does my algorithm run time vary between runs?

Like all cloud providers, we run your algorithm in a shared environment alongside other algorithms. We do our best to dynamically adjust the capacity of our cloud so as to provide every algorithm with the same resources on average. Despite our best efforts, every once in a while the platform might experience a spike in demand that causes your algorithm run time to deviate.

Need help? Contact us:
support@codeocean.com

Table of Contents

Need help? Contact us:
support@codeocean.com