Mac computers are some of the most frequently used within the field of bioinformatics, largely due to the use of the Mac OS X operating system which embraces both a Microsoft Office framework and a Unix-based environment. Indeed, most bioinformaticians are often working closely with those are not experts in informatics, and are most comfortable with traditional Microsoft tools including Word, Excel, and Powerpoint and also working closely within a traditional development environment that uses Unix based tools. A Unix-based framework is operating systems that have an underlying architecture, functionality, and similarities routed within the original Unix based operating system, for which we provide more detail later. The specific name of the Mac flavor of Unix is called Darwin.
SETTING UP THE DESKTOP.
We need to first make sure we are all working on the same version of MacOS software, and as we’ve all learned there are continual updates. You can see the version you are currently running from pressing the “Apple” button in the upper left hand-hand corner.
Storage is the part of the computer that allows you to store and access data over a longer period of time. Historically, these were tapes, disks, and more recently are solid state drives. Generally, they retain their data even when powered off. Many people think of these as book shelves or filing cabinets.
Memory refers to the parts of your computer that provide rapid short-term access to data, and is called random-ac cess memory (RAM). Your computer does much of its operation using its short-term RAM like editing documents. People think of these as open pages of a book that you are actively working on.
If you are not up to the most recent version you may have some issues with running some tools, or some things may look a little different. Updating can often be painful and involve tools no longer working, so always take this step when you have a window of time to lose to ensure all your tools are working properly. It can often take many hours to do a full update. So if you have the time, update your MacOS.
The directory tree is one of the most important concepts to understand well. Essentially, there are folders and files within these folders at the most basic levels. There are some other types, called links which are basic directions of where a file is, essentially a placeholder. In MacOS, the finder is the best visual tool for looking at the directory tree, and this is usually accessed by clicking on the happy face on the dock.
If we then click on “Go”, and “My Computer” we can have the inner show us the top level of our computer, which typically has a disk, plus any peripherals. The disk is often called Macintosh HD. If this is not on the left side of the menu on “Favorites”, I recommend dragging it over since you’ll often need it. Below is an example display, but your display may look different depending on which icon you have set (note the shaded 4 lines on the top, directly above “Name”).
You’ll notice that I have the Applications folder selected and opened, and you can see some of the applications or programs currently installed in my computer. Often in a Mac when we are installing, we drag an “icon” or a “folder” into this directory. We can then run the particular software by double-clicking on the icon. Often this is cumbersome to open up the finder window every time we want a software tool to run, so we can also drag the icon to the “Dock” at the bottom, thereby providing a short-cut to starting the program. I recommend for some of the major tools you’ll be using to do this.
Mac Programs to Install
For the most part, it’s best to have a Mac computer since it has access to both Microsoft Office within a Unix-based environment.
Installing through App Store
First and foremost, XCode. This contains numerous optimized codebases such as C, Fortran, etc all needed by the mac.
- Website: https://www.iterm2.com/
- Purpose: Improved terminal for logging into servers
- Website: https://brew.sh/
- Purpose: Installs easily numerous packages that are often missing in MacOS
- Install Python3:
brew install python
R + R/Studio
- Website: https://rstudio.com/
- Purpose: R Statistical language and a GUI interface for working within R.
- Website: https://desktop.github.com/
- Purpose: Versioning tool for interfacing with Git/Github
- Website: https://slack.com/
- Purpose: Work messaging service
- Website: https://macdown.uranusjr.com/
- Purpose: Rendering and composing Markdown code.
- Website: https://www.sublimetext.com/
- Purpose: A highly robust text-editor for Mac
Visual Studio Code
- Website: https://code.visualstudio.com/
- Purpose: A functional coding environment
- Website: https://code.visualstudio.com/
- Purpose: A development environment for web-pages
- Website: https://vpn.usc.edu
- Purpose: Accessing USC specific content
- Website: https://trello.com/
- Purpose: Kanban style project management
Learning Flavors of Unix and Command-line
UNIX is an operating system around in the 60s and broadly refers to a set of programs that all work the same way at the command-line. They have the same feel. They have the same philosophy of design. Ok, its a specific operating system owned by AT&T, however, these days it refers to a program that all follow a common framework. There are many types of Unix – MacOSX, Linux, and Solaris where each of those is essentially different sets of codes owned by different companies or groups to get the common Unix common framework. MacOSX is owned and developed by Apple. Solaris is owned by Sun and Oracle. Linux is open-source and built from a community led by Linus Torvalds, and was meant to work on x86 PCs. The x86 refers to a type of CPU architecture used across most personal computers today (both Mac and PC). If I log into a Unix machine in 1980, 1990, 2000, 2010, 2017 – it will often feel and work the same.
- Kenneth Bradnam’s Command line Bootcamp (http://rik.smith-unna.com/command_line_bootcamp). Free one-page resource.
- Various modules dependent on need
- Code Academy (https://www.codecademy.com/). An excellent resource for learning without an account. Evaluated resources include Learn the Command-line, Website building, and Git. Can be tested for free, or utilizes a $19.95/mo fee
- Ryan’s tutorial (https://ryanstutorials.net/bash-scripting-tutorial/). Quick and easy w/ good instruction.
R is a scripting language enabled and expanded by RStudio. There is the base environment and the R-Studio environment which enables a graphical user interface (GUI) for editing and building reproducible analysis.
- Introduction to R by Thomas Girke.(https://girke.bioinformatics.ucr.edu/manuals/mydoc/mydoc_Rbasics_1.html)
- R & Bioconductor Manual by Thomas Girke UC Riverside (http://manuals.bioinformatics.ucr.edu/home/R_BioCondManual)
- Little Book of R for Bioinformatics (https://a-little-book-of-r-for-bioinformatics.readthedocs.io/). Free excellent book for pure R.
- DataCamp (https://www.datacamp.com/courses/free-introduction-to-r). Introductory tool for learning R. First few chapters are free, though it costs typically $25 per month
- R Basics Cheatsheet. Simple 1 page cheatsheet for basic R functions
- R Importing Data Cheatsheets. Simple 1 page cheatsheet for importing data into R.
- Transforming and manipulating data. Simple cheatsheets for manipulating data with dplyr.
- Top 50 ggplot2 Visualizations. (http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html)
- FreeCodeCamp (2hr). Popular R video for learning R.
- Lynda.com. Free for USC faculty , staff and students.
- Learning R (2hr 51min)
- R statistics (5h 59m)
- R for Data Sience (7h 16m)
- Data Wranging in R (4 h 12 m
- Data Visualization in R with ggplot2 (2hr 27
High-level: What is Unix/Linux/Bash/Command-line?
These are terms that are used loosely, and not really reflective of their technical meaning. If I said to you this course teaches Windows for example, for most something comes to mind. However technically, Windows could be Windows 95,98,3.1, ME, XP, and so forth. Same here – just more extreme. Learning command-line is generally the same as learning BASH (the most common shell environment), and the same as learning to use Linux/Unix computers for most beginners. Down the road, there are important distinctions, so to keep all of this accessible to new users, we will not go down these rabbit holes.
Remainder Please Go To: