tutorials:perl_exercises
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tutorials:perl_exercises [2010/07/31 22:45] – chkuo | tutorials:perl_exercises [2010/08/07 00:42] (current) – chkuo | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Perl Exercises ====== | ====== Perl Exercises ====== | ||
- | ===== Read-and-Write | + | ===== read_and_write |
- | Read from an input file and write the content to an output file. Assume the two filenames are provided in the command line. You need to know about filehandles | + | Read from an input file and write the content to an output file. Assume the two filenames are provided in the command line. |
+ | |||
+ | **Hint: learn about filehandle | ||
<code bash> | <code bash> | ||
$ cat input.txt | $ cat input.txt | ||
Line 18: | Line 20: | ||
James Monroe | James Monroe | ||
</ | </ | ||
+ | See a sample answer [[tutorials: | ||
+ | |||
+ | ===== parse_first_name ===== | ||
+ | Read from an input file (containing a list of full names) and write the first names to an output file. Assume the two filenames are provided in the command line. | ||
+ | |||
+ | **Hint: learn about filehandle and array (or regular expression) before attempting this exercise.** | ||
+ | <code bash> | ||
+ | $ cat input.txt | ||
+ | George Washington | ||
+ | John Adams | ||
+ | Thomas Jefferson | ||
+ | James Madison | ||
+ | James Monroe | ||
+ | $ perl parse_first_name.pl input.txt first_name.txt | ||
+ | $ cat first_name.txt | ||
+ | George | ||
+ | John | ||
+ | Thomas | ||
+ | James | ||
+ | James | ||
+ | </ | ||
+ | See a sample answer [[tutorials: | ||
+ | |||
+ | ===== count_first_name ===== | ||
+ | Read an input file that contains several names (assuming one name in each line, the first name and the last name are separate by a space). Count how the number of times each first name appeared in the input. Print the result to STDOUT, sort the names alphabetically. | ||
+ | |||
+ | **Hint: learn about filehandle, array, hash, and sorting before attempting this exercise.** | ||
+ | <code bash> | ||
+ | $ cat input.txt | ||
+ | George Washington | ||
+ | John Adams | ||
+ | Thomas Jefferson | ||
+ | James Madison | ||
+ | James Monroe | ||
+ | $ perl count_first_name.pl input.txt | ||
+ | George appeared 1 times | ||
+ | James appeared 2 times | ||
+ | John appeared 1 times | ||
+ | Thomas appeared 1 times | ||
+ | </ | ||
+ | See a sample answer [[tutorials: | ||
+ | |||
+ | ===== write_lines_to_files ===== | ||
+ | Obtain an input file and an output directory from the command line. Produce one output file for each line in the input file, use the line number (i.e., 1, 2, 3, etc) as the filenames. | ||
+ | |||
+ | **Hint: learn about filehandle and directory operation before attempting this exercise.** | ||
+ | |||
+ | <code bash> | ||
+ | $ cat input.txt | ||
+ | George Washington | ||
+ | John Adams | ||
+ | Thomas Jefferson | ||
+ | James Madison | ||
+ | James Monroe | ||
+ | $ perl write_lines_to_files.pl input.txt output/ | ||
+ | $ head output/* | ||
+ | ==> output/1 <== | ||
+ | George Washington | ||
+ | |||
+ | ==> output/2 <== | ||
+ | John Adams | ||
+ | |||
+ | ==> output/3 <== | ||
+ | Thomas Jefferson | ||
+ | |||
+ | ==> output/4 <== | ||
+ | James Madison | ||
+ | |||
+ | ==> output/5 <== | ||
+ | James Monroe | ||
+ | </ | ||
+ | See a sample answer [[tutorials: | ||
+ | |||
+ | |||
+ | ===== combine_files ===== | ||
+ | The opposite of write_lines_to_files; | ||
+ | |||
+ | **Hint: learn about filehandle, directory operation, and pattern matching before attempting this exercise.** | ||
+ | |||
+ | <code bash> | ||
+ | $ head output/* | ||
+ | ==> output/1 <== | ||
+ | George Washington | ||
+ | |||
+ | ==> output/2 <== | ||
+ | John Adams | ||
+ | |||
+ | ==> output/3 <== | ||
+ | Thomas Jefferson | ||
+ | |||
+ | ==> output/4 <== | ||
+ | James Madison | ||
+ | |||
+ | ==> output/5 <== | ||
+ | James Monroe | ||
+ | $ perl combine_files.pl output/ combined.txt | ||
+ | $ cat combined.txt | ||
+ | George Washington | ||
+ | John Adams | ||
+ | Thomas Jefferson | ||
+ | James Madison | ||
+ | James Monroe | ||
+ | </ | ||
+ | See a sample answer [[tutorials: | ||
+ | |||
+ | |||
+ | |||
+ | ===== unwrap_fasta ===== | ||
+ | Read a [[http:// | ||
+ | |||
+ | **Hint: learn about the '' | ||
+ | <code bash> | ||
+ | $ cat coding.fasta | ||
+ | > | ||
+ | ATGAAACGCATTAGCACCACCATT | ||
+ | accaccaccatcaccattaccacaggta | ||
+ | ACGGTGCGGGCTGA | ||
+ | > | ||
+ | ATGACTCACATCGTTCGCTTTA | ||
+ | TCGGTCTACTA | ||
+ | ctactaaacgcatcttctttgcgcggta | ||
+ | GACGAGTGAGCGGCATCCAGCATTAA | ||
+ | $ perl unwrap_fasta.pl coding.fasta unwrap.fasta | ||
+ | $ cat unwrap.fasta | ||
+ | > | ||
+ | ATGAAACGCATTAGCACCACCATTACCACCACCATCACCATTACCACAGGTAACGGTGCGGGCTGA | ||
+ | > | ||
+ | ATGACTCACATCGTTCGCTTTATCGGTCTACTACTACTAAACGCATCTTCTTTGCGCGGTAGACGAGTGAGCGGCATCCAGCATTAA | ||
+ | </ | ||
+ | See a sample answer [[tutorials: | ||
+ | |||
+ | ===== display_codon ===== | ||
+ | Read a [[http:// | ||
+ | |||
+ | **Hint: learn about the '' | ||
+ | <code bash> | ||
+ | $ cat coding.fasta | ||
+ | > | ||
+ | ATGAAACGCATTAGCACCACCATT | ||
+ | accaccaccatcaccattaccacaggta | ||
+ | ACGGTGCGGGCTGA | ||
+ | > | ||
+ | ATGACTCACATCGTTCGCTTTA | ||
+ | TCGGTCTACTA | ||
+ | ctactaaacgcatcttctttgcgcggta | ||
+ | GACGAGTGAGCGGCATCCAGCATTAA | ||
+ | $ perl display_codon_1.pl coding.fasta codon.fasta | ||
+ | $ cat codon.fasta | ||
+ | > | ||
+ | ATG AAA CGC ATT AGC ACC ACC ATT ACC ACC | ||
+ | ACC ATC ACC ATT ACC ACA GGT AAC GGT GCG | ||
+ | GGC TGA | ||
+ | > | ||
+ | ATG ACT CAC ATC GTT CGC TTT ATC GGT CTA | ||
+ | CTA CTA CTA AAC GCA TCT TCT TTG CGC GGT | ||
+ | AGA CGA GTG AGC GGC ATC CAG CAT TAA | ||
+ | |||
+ | </ | ||
+ | See sample answer 1 [[tutorials: | ||
+ | |||
+ | ===== count_EcoRI_site ===== | ||
+ | Read a [[http:// | ||
+ | |||
+ | **Hint: learn about the regular expression before attempting this exercise.** | ||
+ | |||
+ | <code bash> | ||
+ | $ cat EcoRI.fasta | ||
+ | >Seq_1 | ||
+ | nnnGAA | ||
+ | TTCnnnGAATTCnnnGaattCnnn | ||
+ | >Seq_2 | ||
+ | nnnGAATTCnnngAa | ||
+ | TtCnnn | ||
+ | $ perl count_EcoRI_site.pl EcoRI.fasta | ||
+ | Seq_1 has 3 EcoRI sites | ||
+ | Seq_2 has 2 EcoRI sites | ||
+ | </ | ||
+ | See a sample answer [[tutorials: | ||
+ | |||
+ |
tutorials/perl_exercises.1280587555.txt.gz · Last modified: 2010/07/31 22:45 by chkuo