2008-02-20 22:47:59
Pythonの練習をしてみようと思った。これまでどうしてもPHPしか使えなかったので、もう一つ別の言語を扱いたい。それにPHPはbioinformatics方面でちょっと弱い。BiorubyとかBioPython、BioPerl、BioJavaは充実しているが、BioPHPというのは(実はあるようなのだが)誰も知らない。
しかし、勝手の違う言語はどうも戸惑うことばかり。だから、練習するんだが。
まずはいつものように相補鎖を返させてみる。
import sys from Bio.Seq import Seq from Bio.Alphabet import IUPAC my_seq = Seq(sys.argv[1],IUPAC.unambiguous_dna) print my_seq.reverse_complement().tostring()こいつに実行権を与えて、seqrevとかいう名前でPATHの通ったところに保存し(revseqはEMBOSSで使われている)、seqrev ATGATGなどと打ってみれば、CATCATと返ってくる。
次にCSVファイルの行と列を入れ替えてみよう。PHPで大変な手間がかかった覚えがあるのだが、それが簡単にできるのに驚いた。
import sys output = open('t_' + sys.argv[1], 'w') input = open(sys.argv[1],'r') lines = input.readlines() wordlists = [line[:-1].split(',') for line in lines] for row in zip(*wordlists): output.write((','.join(row)) + '\n') output.close()これだけか! これもtranscsvという名前で保存して、transcsv file.csvと打ってみると、t_file.csvというファイルができあがって、ちゃんと縦横が入れ替わっているではないか。もしかしたら、Pythonのことは好きになれるかも知れない。