2012-11-16T16:49:51+0000Titus BrownTesting.
2012-11-16T16:53:37+0000Qingpeng(Q.P.) Zhangit works
2012-11-16T17:23:05+0000Anita PottekatFor Mac to to exceute the command is it shift+enter ??
2012-11-16T17:23:19+0000Titus BrownYes, Anita.
2012-11-16T17:24:05+0000Anita PottekatThanks Titus. But I have connected to Mac remotely .. from windows ... it didn't work
2012-11-16T17:25:51+0000Anita Pottekatcan I get some help, please ??
2012-11-16T17:26:06+0000Jason KellerIn IP Notebook, how do we browse through command history?
2012-11-16T17:26:57+0000Stuart DuffyI need help! 2nd tables front left (left side). thanks.
2012-11-16T17:29:10+0000Janel Leeis there a way to add comments on your line and have ipython ignore it?
2012-11-16T17:29:57+0000Jason Keller# starts a comment, I think
2012-11-16T17:30:04+0000Cait Pickenscomments are made with the # sign
2012-11-16T17:30:55+0000Ian MacLeodMulti-line comments can be made with triple quotes: '''This is a long comment across lines.'''
2012-11-16T17:33:04+0000Erick ScottBe careful messing with list objects.
2012-11-16T17:33:10+0000Erick ScottFor example:
2012-11-16T17:33:14+0000Erick Scotta = [1,2,3]
2012-11-16T17:33:17+0000Erick Scottb= a
2012-11-16T17:33:21+0000Erick Scottb[1] = 7
2012-11-16T17:33:26+0000Erick Scottprint a
2012-11-16T17:33:34+0000Erick Scott[1, 7, 3, 4]
2012-11-16T17:34:05+0000Cait Pickens@StuartDuffy raise hand
2012-11-16T17:34:08+0000Erick Scottwhoops, should be [1,7,3]
2012-11-16T17:35:10+0000Duane RinehartDoes i++ structure exist in python?
2012-11-16T17:35:17+0000Cait Pickensi += 1
2012-11-16T17:35:47+0000Katie Petrie@ErickScott this is because list are mutable, right? Are tuples the immutable version?
2012-11-16T17:35:51+0000Erick Scotti +=1 is the same as i = i+1
2012-11-16T17:36:36+0000Titus Brown@KatiePetrie yes, tuples are immutable -- try l = (5,6,7) and then l[0] = '8'
2012-11-16T17:36:38+0000Erick Scotttuples are immutable, and lists are mutable. However, it also has to do with the way python treats objects, which is bindings and not buckets
2012-11-16T17:37:18+0000Cait Pickensre: command history in the notebook. you can edit any command you have in the cell you created originally. ex: have a cell that says i=1. now i want it to say i=2. i just edit the original cell. to have the same command a second time (in a separate cell), copy the cell and paste it in a new place. to see your command history, use %history
2012-11-16T17:38:46+0000Sujata SovaniAre lists only one dimesnional? can you have multiple rows? matrix kinda data?
2012-11-16T17:39:06+0000Chris BaskervilleWhat is the dif between while and for loops?
2012-11-16T17:39:15+0000Erick Scottlists can be multi-dimensional, just use list of lists
2012-11-16T17:39:34+0000Titus Brown@SujataSovani You can nest lists, so have lists that contain lists. numpy arrays are a better, more efficient choice, tho.
2012-11-16T17:39:35+0000Erick Scotteg. [[1,2,3],[4,5,6]]
2012-11-16T17:39:58+0000Titus Brown@ChrisBaskerville while loops do something until a condition is met; for loops iterate over a list, until the list ends.
2012-11-16T17:40:13+0000Titus Brown@ChrisBaskerville you can usually us either one but for loops turn out to be more natural for many occasions
2012-11-16T17:45:41+0000Cait Pickensa for loop is used when you know exactly how many times you have to go through a list (example: for i in range(10)). a while loop would be used in a situation when you don't know how many times you will have to use the loop (for example: you have a while loop to see if a user enters the input "hi", which runs repeatedly until the user inputs "hi")
2012-11-16T17:51:01+0000Chris BaskervillePython doesn't recognize the statement:
2012-11-16T17:51:06+0000Chris Baskervillefor i in gasses:
2012-11-16T17:51:48+0000Titus Brown@ChrisBaskerville maybe with one s?
2012-11-16T17:53:02+0000Andrew Su@ChrisBaskerville if you're still having a problem, raise your hand...
2012-11-16T17:55:34+0000Cait Pickenssome useful methods that you can use on lists: http://infohost.nmt.edu/tcc/help/pubs/python/web/list-methods.html
2012-11-16T17:56:34+0000Cait Pickenslike: reverse the entire list, sort the list, take the first/last item out of a list, extend the list with a second list
2012-11-16T17:58:21+0000Duane RinehartRather than extend at end of array, how can I add at beginning of array?
2012-11-16T17:58:22+0000Erick Scottyou can see the methods for any object in python by using the dir() command, e.g. dir(gases)
2012-11-16T18:00:00+0000Cait Pickensinsert(index, item) puts an item in a list at a specified index
2012-11-16T18:00:28+0000Titus Brown@DuaneRinehart so x.insert(0, 'foo')
2012-11-16T18:00:37+0000Cait Pickensstill looking for a way to insert multiple items at the beginning of a list...not sure abotu that.
2012-11-16T18:01:04+0000Titus Brown@CaitPickens @DuaneRinehart to "insert" multiple items at the beginning of a list, just do x = newlist + x
2012-11-16T18:01:12+0000Titus BrownAlthough that can get slow :)
2012-11-16T18:01:24+0000Katie PetrieWhich is first in the dictionary, the key or the assigned value?
2012-11-16T18:01:57+0000Titus Brownkey
2012-11-16T18:02:02+0000Titus Brown@KatiePetrie the key
2012-11-16T18:02:11+0000Katie Petriethanks!
2012-11-16T18:04:21+0000Duane RinehartHow can I sort a list (say alphabetically) or dictionary (by key)? - possibly with built-in function not loop
2012-11-16T18:05:03+0000Cait Pickenslist.sort()
2012-11-16T18:05:09+0000Sujata Sovanican you have multiple values for one key like in the case of dictinary tel here, ph no, address etc.. Thanks.
2012-11-16T18:05:34+0000Cait Pickens@DuaneRinehart see the sort example here: http://infohost.nmt.edu/tcc/help/pubs/python/web/list-methods.html
2012-11-16T18:05:41+0000Erick Scott@SujataSovani no you can only have unique keys
2012-11-16T18:06:16+0000Cait Pickens@SujataSovani keys must be unique and cannot be changed. but your value can be updated/changed. it could also be a list of items
2012-11-16T18:07:08+0000Cait Pickenssay you wanted to have a phone book, where the key is a last name ("smith") and the value is the person's info ("john", "555-555-5555", address)
2012-11-16T18:07:08+0000Qingpeng(Q.P.) Zhangone value for one key, but the value can be a list or even another dicitonary
2012-11-16T18:07:14+0000Duane RinehartAfter loading in in fasta file (or through concatenation), how can I check for duplicate keys (and either not include or remove)?
2012-11-16T18:08:08+0000Cait Pickens@DuaneRinehart do you mean loading in a fasta file into a dictionary and checking for duplicate keys after that?
2012-11-16T18:08:19+0000Duane Rinehartyes
2012-11-16T18:08:26+0000Cait Pickens@DuaneRinehart... i don't think you can even have a duplicate key, python would give you an error
2012-11-16T18:08:44+0000Titus Brown@DuaneRinehart ask me during my session
2012-11-16T18:08:45+0000Cait Pickens@DuaneRinehart so, you'd have to make sure you have clean data that doesn't have duplicate keys before you make it into a dict
2012-11-16T18:09:09+0000Titus Brown@SujataSovani you can assign a list as a value in a dictionary.
2012-11-16T18:09:22+0000Titus Brown@SujataSovani @CaitPickens to change keys, you have to delete the old one and insert a new one
2012-11-16T18:09:27+0000Cait Pickens@DuaneRinehart or write an error function that checks to see if the key already exists, and if it does, then handle the error appropriately (possibly make a different key)
2012-11-16T18:10:09+0000Ian MacLeod@DuaneRinehart You can use dict.keys() to get its keys. Also a set (http://docs.python.org/2/library/stdtypes.html#set) can be used for uniqueness.
2012-11-16T18:11:57+0000Cait Pickens@IanMacLeod, @DuaneRinehart yes. there is a third type of data structure called a set. you can convert a list into a set, and then compare the size of the list to the size of the set. a set is like a list, but cannot have duplicate values in it. therefore, if there are duplicate values in a list, then the length of the list and the length of its corresponding set would be different.
2012-11-16T18:14:42+0000Jonathan HArtIs there any way to predict the memory requirements of dictionaries? Seems python would be storing key, value and key hash for each entry
2012-11-16T18:15:12+0000Titus Brown@JonathanHArt Not really. Um, ask me during the screed session (next)
2012-11-16T18:16:22+0000Cait Pickens@JonathanHArt, maybe look for some people who have similar problems to this via google? for example, i see this problem someone encountered: http://stackoverflow.com/questions/5924151/python-dictionary-memory-usage
2012-11-16T18:17:20+0000Cait Pickens@JonathanHArt here is another interesting discussion about ways to handle memory issues with dicts: http://stackoverflow.com/questions/327223/memory-efficient-alternatives-to-python-dictionaries
2012-11-16T18:25:21+0000Chris Baskervilleserious problem. I crashed python and I cant restart.
2012-11-16T18:26:39+0000Chris BaskervilleFixed it. sorry.
2012-11-16T18:27:41+0000Jonathan HArtThanks for the suggestions. I figured it would be bad for large dictionaries, but I had no idea just how intensive it would be.
2012-11-16T18:34:06+0000Erick ScottHere's a link to MIT's Intro to Computer Science Course (Python): http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/
2012-11-16T18:34:20+0000Erick Scottgreat video lectures, notes, assignments, professors
2012-11-16T18:34:53+0000Cait Pickens@ErickScott, yes, these lectures and course resources are great!
2012-11-16T18:36:31+0000Katie Petrie@CaitPickens @ErickScott I third - that course is awesome and I've learned a lot
2012-11-16T18:36:40+0000Erick ScottAlso: http://www.khanacademy.org/science/computer-science/v/introduction-to-programs-data-types-and-variables
2012-11-16T18:36:46+0000Andrew Sua few people are taking advantage of down time to work on their own data. If you want some help with that, feel free to ask one of the instructors or TAs...
2012-11-16T18:38:54+0000Erick ScottHere are the best R tutorials I've found, you'll be up and running in 1 hour (just take a few notes while watching): http://www.youtube.com/user/Tutorlol?feature=watch
2012-11-16T18:41:08+0000Andrew SuFor those who are going to learn R, you _must_ use Rstudio (http://www.rstudio.com/ide/). python : ipython notebook :: R : Rstudio
2012-11-16T18:41:35+0000Titus Brown@AndrewSu although note that ipynb also lets you use R :)
2012-11-16T18:42:32+0000Andrew SuYes, that sounds like a great option too (though I can't personally vouch for it)...
2012-11-16T19:14:26+0000Katie PetrieI'm getting a 'no such file or directory' when I do the gunzip
2012-11-16T19:14:33+0000Andrew Suraise hand?
2012-11-16T19:15:33+0000Erick Scottyou can cd into the python directory and run: gunzip -c 25k.fq.gz | less
2012-11-16T19:16:02+0000Erick Scottcd ~/2012-11-scripps/python/
2012-11-16T19:19:35+0000Katie Petrieso was the path/to/ just a placeholder?
2012-11-16T19:20:34+0000Cait Pickensnot sure i understand your question, @KatiePetrie
2012-11-16T19:21:08+0000Sujata Sovani'/home/swc/2012-11-scripps/python/25k.fq.gz'
2012-11-16T19:21:12+0000Sujata Sovanithis works
2012-11-16T19:21:34+0000Katie PetrieI just meant since it was named '/path/to' was it trying to indicate that we should fill in the appropriate path to wherever we placed the file on our machine
2012-11-16T19:21:42+0000Cait Pickensyes
2012-11-16T19:22:06+0000Katie Petrie(which in hindsight makes a lot of sense)
2012-11-16T19:27:29+0000Chris BaskervilleMy current error in ipython:
2012-11-16T19:27:33+0000Chris BaskervilleIOError Traceback (most recent call last) in () 1 import screed ----> 2 for record in screed.open('/path/to/2012-11-scripps/python/25k.fq.gz'): 3 print record.name 4 print record.sequence 5 print record.accuracy
2012-11-16T19:36:09+0000Cait Pickens@ChrisBaskerville is your error resolved?
2012-11-16T19:47:40+0000Duane RinehartI can't find the 25k.fq.gz file in the python directory. Where can I download this?
2012-11-16T19:47:52+0000Andrew Suraise hand?
2012-11-16T19:49:21+0000Andrew Su@DuaneRinehart you need to do git pull origin master, but probably you are having an error, raise your hand so someone can help you work through it....
2012-11-16T19:50:34+0000Duane RinehartI did the git pull origin master already - need help
2012-11-16T19:58:00+0000Sujata SovaniSorry what does outfp do? Thanks.
2012-11-16T19:58:57+0000Andrew Su@SujataSovani outfp is a file handle for writing the output file...
2012-11-16T19:59:05+0000Chris Baskervilleyes my error was resolved.
2012-11-16T19:59:18+0000Andrew Suthis command opens the file handleoutfp = open('out.fa', 'w')
2012-11-16T19:59:18+0000Andrew Suthis command opens the file handleoutfp = open('out.fa', 'w')
2012-11-16T19:59:29+0000Sujata Sovaniso only this >%s\n%s\n converts fastq to fasta - is tht right..thanks
2012-11-16T20:00:15+0000Andrew Suhmmm, might be easier to look at the same screen. find me?
2012-11-16T21:08:10+0000Chris Baskervillewhat I'm getting:
2012-11-16T21:08:13+0000Chris Baskervilleimport blastparser fp = open('python/sample-blast.txt') for record in blastparser.parse_fp(fp): for hit in record.hits: for match in hit.matches: print record.query_name, hit.subject_name print match.subject_start, match.query_start print match.subject_end, match.query_end break
2012-11-16T21:17:01+0000Sujata Sovaniwhat does normed=True do?
2012-11-16T21:17:08+0000Titus Brownevalues = [] fp = open('sample-blast.txt') for record in blastparser.parse_fp(fp): for hit in record.hits: for match in hit.matches: evalues.append(match.expect)
2012-11-16T21:18:09+0000Andrew Sureprinting for those who just joined... evalues = [] fp = open('sample-blast.txt') for record in blastparser.parse_fp(fp): for hit in record.hits: for match in hit.matches: evalues.append(match.expect)
2012-11-16T21:21:08+0000Titus Brownfp = open('sample-blast.txt') n = 0 for record in blastparser.parse_fp(fp): n += 1 if n > 5: break for hit in record.hits: for match in hit.matches: print record.query_name, hit.subject_name, match.expect
2012-11-16T21:22:25+0000Andrew SuNOTE! you must click the "Show full text" link if you want to copy-and-paste into your notebook...
2012-11-16T21:24:26+0000Titus Brownfp = open('sample-blast.txt') outfp = open('/tmp/blastout.txt', 'w') n = 0 for record in blastparser.parse_fp(fp): n += 1 if n > 5: break for hit in record.hits: for match in hit.matches: print >>outfp, record.query_name, hit.subject_name, match.expect break break
2012-11-16T21:27:23+0000Cait PickensI am going to answer some minute cards here for questions which are a bit more specific to certain people, or general announcements that we don't have time to cover in the lecture part of class.
2012-11-16T21:28:19+0000Cait PickensQ: Is there a mailing list for IPython? Yes! Here it is for users:http://mail.scipy.org/mailman/listinfo/ipython-user
2012-11-16T21:28:35+0000Titus Brownimport csv fp = open('sample-blast.txt') outfp = open('/tmp/blastout.csv', 'wb') w = csv.writer(outfp) for record in blastparser.parse_fp(fp): for hit in record.hits: for match in hit.matches: w.writerow([record.query_name, hit.subject_name, match.expect]) break break outfp.close()
2012-11-16T21:30:46+0000Cait PickensQ: What are the differences between ints, strings, floats, etc? Here is some documentation on Python built-in types: http://docs.python.org/2/library/stdtypes.html There's a lot of reading there, so just control+f to search for certain keywords.
2012-11-16T21:33:35+0000cristina irimia I'm having difficulties removing the "0: " from the following line: 0: 127.000 0.000 0.000 0.000 0.000. Any suggestions? thank you!
2012-11-16T21:36:30+0000Cait PickensQ: How to input lines, break them into strings, etc? If you want to read in lines from a file into Python, here is set of slides about how to open files, read things from them, and the errors you might run in to: http://www.cse.msu.edu/~cse231/lectures/Dillon/day10/07_Files_Exceptions.pdf And here are some slides about how to slice strings, replace parts of them, etc: http://www.cse.msu.edu/~cse231/lectures/Dillon/day06/06_Strings.4up.pdf
2012-11-16T21:37:00+0000Cait Pickens@cristinairimia split_str = line.split(": ") will split your line at the ": "
2012-11-16T21:37:05+0000cristina irimialooks good, thanks!
2012-11-16T21:37:21+0000Cait Pickensthen, split_str[1] will be everything after the ": "
2012-11-16T21:40:12+0000Qingpeng(Q.P.) Zhangis there a way to browse the history?
2012-11-16T21:40:31+0000Cait Pickensthe chat history? not yet. working on getting a pdf printout of the convo
2012-11-16T21:40:54+0000Qingpeng(Q.P.) Zhangyes, that will be helpful.
2012-11-16T21:43:23+0000Cait PickensQ: How do I store my data (or keep my data, or organize my data) as I work? The answer to this question is: data structures. There are a ton of different types of data structures that you can use in Python. We talked about structures like lists and dicts, which you will probably use frequently. Remember that you can have a list of lists (or a list of lists of lists...). Other structures you may want to use are sets, stacks, queues, and tuples. Here is some Python documentation on different data structures and how to use them: http://docs.python.org/2/tutorial/datastructures.html It is important to note that you always need to choose what sort of data structure best suits your data! You will definitely get better with practice.
2012-11-16T21:48:26+0000Cait PickensQ: What is the best way to execute scripts when they are finalized? To have a script that anyone can execute, you should create a .py file (rather than a .ipynb IPython Notebook file, which is more for interactive situations, writing a paper, giving presentations). Then, cd into the directory where your .py file is. Run the script with the command python myscript.py Note that if you have more than one install of Python on your machine, you may need to specify which version of Python to use: python2.7 myscript.py
2012-11-16T21:53:03+0000Cait PickensQ: I'm frustrated using VirtualBox and having lots of problems. What should I do? We teach using VirtualBox because it streamlines the install process for most students. The problem is that VirtualBox is slow on old computers. That isn't good for doing your own work, and we understand that. What should you do instead? Use the it-test7 server that Andrew had setup! You can ssh into it, and do your work via the terminal (or the notebook) like we showed you in class. :]
2012-11-16T21:56:36+0000Cait PickensQ: How do I shrink gaps in multiple sequence alignment files? This is a good question in general about how to manipulate a string from a file. If it has extra spaces or dashes that you want to remove, you can use: line.replace(old, new) where old is the character you want to remove and new is what you want to replace it with. So, imagine you have a string line = "hi-my-name-is-cait" and you want to take out the dashes. How? line = line.replace("-","") Note that the empty quotes mean a null value (replace the character with nothing)
2012-11-16T21:59:53+0000Duane RinehartHow do I find out how long a process has been running from within screen?
2012-11-16T21:59:54+0000Andrew Su***NOTE ABOUT IT-TEST7*** -- right now the server name is not set up correctly. You can use this command instead: 'ssh username@', where you replace 'username' with your scripps username
2012-11-16T22:00:10+0000Andrew Sucontacting IT to fix so that you can use the name 'it-test7', will post here when it's fixed...
2012-11-16T22:00:46+0000Cait Pickens@DuaneRinehart not sure. google? or ask tracy
2012-11-16T22:03:05+0000Ruth HueyHow do I download blastall?
2012-11-16T22:04:34+0000Cait Pickens@RuthHuey ask tracy or titus during a break :]
2012-11-16T22:05:53+0000Andrew Su@RuthHuey If you are using a server managed by Scripps IT (like garabaldi, for example), I'm pretty sure blastall will be preinstalled for all users...
2012-11-16T22:05:55+0000Ruth HueyActually, i just found it...
2012-11-16T22:06:14+0000Ruth HueyThanks...
2012-11-16T22:18:20+0000Duane Rinehartanswer for transcript about process time is: ps -aux | grep "blastall"
2012-11-16T22:19:40+0000Cait Pickens@DuaneRinehart thank you :]
2012-11-16T22:25:41+0000Cait PickensQ: Who can access my stuff when I am on a shared server? I think this depends on how your IT department sets up the server. @AndrewSu, can you answer this question please?
2012-11-16T22:29:36+0000Cait PickensQ: How do I install Blast locally on my machine? Tracy is adding the link to this information on the course website here: http://swc-scripps.idyll.org/en/latest/day2.html It is under the useful unix tools heading
2012-11-16T22:32:57+0000Andrew Suregarding the shared servers question -- standard set up is for each user to have their own home directory. This space is by default private to you, and you can give permissions to others via the 'chmod' command. IT has also set up shared group space, where each PI's group has a set allotment (1 TB I think). Contact the help desk to ask how to set that up...
2012-11-16T22:37:04+0000Cait Pickenswhat about using the notebooks? how is that public?
2012-11-16T22:37:27+0000Titus Brownhttp://ged.msu.edu/angus/tutorials-2012/index.html
2012-11-16T22:37:49+0000Cait PickensQ: How do you keep track of which screen is which if you run multiple? Look at the timestamp.
2012-11-16T22:38:49+0000Cait PickensQ: What does parsing mean? Parsing is just the process of reading in a text file and turning that information into something you can use. (http://en.wikipedia.org/wiki/Parsing)
2012-11-16T22:39:47+0000Cait PickensQ: Please post commands on hipchat? Yes, we will try to do this. Most (if not all) of the code should be available publicly in notebooks or on the website.
2012-11-16T22:40:01+0000Sujata SovaniCait, Is there a way to save this HipChat page to have all this info and your answers? Thanks.
2012-11-16T22:40:16+0000Cait Pickensyes, we are going to give it to you at the end of the class :]
2012-11-16T22:43:10+0000Cait PickensQ: Which parts of your code do you test? When do you update the tests? The broad answer... You should test all parts of your code! And, you should update the tests (or write new ones) any time you make changes that cannot be tested by the existing tests you have. You should also run your tests on your code whenever you change your code, to make sure you didn't accidentally break anything!
2012-11-16T22:44:27+0000Cait PickensQ: This is too much information to process! How can I absorb all of it? ...We definitely don't expect you absorb all of it right now, over this two day period. Instead, we want you to see a lot of different things you can use, give you the basic idea of how they work (so you are familiar with them), and give you resources to continue using them and teach yourself (and friends) more in the future.
2012-11-16T22:45:16+0000Cait PickensQ: How do I use Blast with the test7 server? @AndrewSu, can you answer this? Where is the database?
2012-11-16T22:47:42+0000Cait PickensQ: Can I ssh into my home computer? Short answer? Not usually. Your home computer must have ssh server capabilities set up on it, which is not usually the case. You *can* set them up, if this feature would be super useful to you. This is something that you should talk to Andrew or the IT people about.
2012-11-16T22:49:16+0000Andrew SuQ: How do I use Blast with the test7 server? A: Sadly, it-test7 is not set up for blast searching. If that's something you need, send an email to JC Ducom and cc me...
2012-11-16T22:49:18+0000Cait PickensA bit more about functions: A function is a piece of code that you define because you plan to use that code repeatedly. Functions can take in parameters (called arguments) and can return values. In order to run the function code, you need to *call* the function. One function that we have already used a lot in class is "print"
2012-11-16T22:50:30+0000Cait PickensOther functions are things like string.replace() (which some have used to replace characters in a string value), list.append() (which adds an element to the end of the list), etc. Titus is writing his own function in the demo right now.
2012-11-16T23:13:43+0000Titus Brown%%file gc-of-seqs.py import sys import screed import calc_gc filename = sys.argv[1] total_gc = [] for record in screed.open(filename): gc = calc_gc.calc_gc(record.sequence) total_gc.append(gc) print sum(total_gc) / float(len(total_gc))
2012-11-16T23:13:48+0000Titus Brown!python gc-of-seqs.py 25k.fq.gz
2012-11-16T23:13:52+0000Titus Brown%%file test_gc_script.py import subprocess correct_output = "0.607911191366\n" def test_run(): p = subprocess.Popen('python gc-of-seqs.py 25k.fq.gz', shell=True, stdout=subprocess.PIPE) (stdout, stderr) = p.communicate() assert stdout == correct_output
2012-11-16T23:13:55+0000Titus Brown!nosetests test_gc_script.py
2012-11-16T23:16:01+0000Titus Brownhttp://swc-scripps.idyll.org/en/latest/index.html
2012-11-16T23:18:01+0000Sujata Sovanihttps://github.com/swcarpentry/2012-11-scripps
2012-11-16T23:36:40+0000Katie PetrieHow do we leave or log out of the amazon server?
2012-11-16T23:36:49+0000Katie PetrieDo we just close the shell?
2012-11-16T23:37:06+0000Janani Rangarajanexit
2012-11-16T23:37:15+0000Katie Petriethanks
2012-11-16T23:37:16+0000Andrew Su@KatiePetrie yes, you can do that. Or type "exit" at the command prompt...
2012-11-16T23:46:11+0000Titus Brownhttps://docs.google.com/document/d/1g13a9mRoepTp4X6KQ9oms-e4mCmjyWoKnnh0hkRMxTc/edit
2012-11-16T23:47:56+0000ying fan 3:46 PM https://docs.google.com/document/d/1g13a9mRoepTp4X6KQ9oms-e4mCmjyWoKnnh0hkRMxTc/edit