LoginSignup
1
0

前回は、Step4:Convert .sra files into FASTA format, collapse the identical readsで終わりました。

今回はStep5,6をやっていきたいと思います。

Step5: Edit configure files

configure fileを編集してね、とのことです。
サンプルが表示されていました。
必要に応じて、以下のようにconfigure fileなるものを書けばいいということですね。

configure.fileの書き方

[library名]
sample_name = サンプル名(シーケンスに用いた細胞などの名前)
genome_index = genomeのインデックス(モデル生物名_dnaとなっているもの)
trans_index = transcript(モデル生物名_transとなっているもの)
genome_seq = genomeのシーケンス(モデル生物名_dna.faとなっているもの)

ちなみにサンプルとして与えられたファイルcircRNAFind.cfgは以下のようになっていました。

circRNAFind.cfg
[lib1]
sample_name = HEK293
reads_file = ./fasta/HEK293.fa
genome_index = ./build/hg19_dna
trans_index = ./build/hg19_trans
genome_seq = ./build/hg19_dna.fa

[lib2]
sample_name = CD34
reads_file = ./fasta/CD34.fa
genome_index = ./build/hg19_dna
trans_index = ./build/hg19_trans
genome_seq = ./build/hg19_dna.fa

[lib3]
sample_name = CD19
reads_file = ./fasta/CD19.fa
genome_index = ./build/hg19_dna
trans_index = ./build/hg19_trans
genome_seq = ./build/hg19_dna.fa

[lib4]
sample_name = neutrophils
reads_file = ./fasta/neutrophils.fa
genome_index = ./build/hg19_dna
trans_index = ./build/hg19_trans
genome_seq = ./build/hg19_dna.fa

また次のstep6で使うcircRNAAnno.cfgは以下の通り。別の書き方もできるようです。

circRNAAnno.cfg
[group1]
sample_names = CD19,CD34,neutrophils,HEK293
genome_index = ./build/hg19_dna
genome_seq = ./build/hg19_dna.fa
gene_bed = ./build/hg19.gtf.build
id_prefix = hsa

では、次のステップへ。

Step6: Run circRNAFinder

いよいよcircRNAFinderを使う時がきたようです。
Tutorial.shには以下のように書かれていました。

bash
!circRNAFind.py circRNAFind.cfg -s 0
!circRNAAnno.py circRNAAnno.cfg -s 0
!igv.sh & circRNAView.py circRNAView.cfg

が、早速エラー。というのもcircRNAFind.pycircRNAAnno.pyがおいてあるのは/content/drive/MyDrive/circRNAFinder/srcの中。一方、circRNAFind.cfgcircRNAAnno.cfgはその一つ上の階層のcircRNAFinder内。なので、この2つのcfg.filesrcフォルダへ移動させました。ついでに、circRNAFind.pyを開いてprintの記述も直しました。
これでいけるかと思いきや、次なるエラー。

エラーの内容
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-11-cf8b20c73bfc> in <cell line: 4>()
      2 import sys
      3 sys.path.append('/content/drive/MyDrive/circRNAFinder/src')
----> 4 import circRNAFind
      5 import circRNAAnno
      6 import circRNAView

/content/drive/MyDrive/circRNAFinder/src/circRNAFind.py in <module>
      3 "circFind.py -- "
      4 
----> 5 import sys, os, ConfigParser, argparse
      6 parser = argparse.ArgumentParser(description='circFind is a pipeline to find circular RNA')
      7 parser.add_argument('config_file', help='')

ModuleNotFoundError: No module named 'ConfigParser'

ConfigParserなるmoduleはないと言われました。どうすればいいのか分からないので、とりあえず、chatGPT先生に元のコードとエラー内容を打ち込んで、修正案をお尋ねしました。

chatGPTの答え
ConfigParser モジュールが見つからないエラーが発生しています。
これは、Python 3からConfigParser が configparser に変更されたためです。

また、argparse モジュールも見つからないエラーが発生していますが、
これは正しくインポートされていますので問題ありません。

なるほど。とりあえず、ConfigParserのエラーを先に直しました。

circFind.py (修正前)
#//-----中略-----//
#================================================================
cf = ConfigParser.ConfigParser()  #ここが問題
cf.read(args.config_file)  
修正後のコード
#//-----中略-----//
#================================================================
cf = configparser.ConfigParser()  #修正
cf.read(args.config_file)  

これで実行してみますが、またエラー。

エラーの内容
usage: colab_kernel_launcher.py [-h] [-s {0,1,2,3,4,5,6,7}] [-r] config_file
colab_kernel_launcher.py: error: unrecognized arguments: -f
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2

「またお前か。」といいたくなるエラー。とりあえずargsを変える。

circFind.py (修正前)
"circFind.py -- "
#//-----中略-----//
args = parser.parse_args() #ここを変える
修正後
"circFind.py -- "
#//-----中略-----//
args = parser.parse_args(args=[]) #ここを変える

が同じエラーが出現。
そこでQiitaの質問コーナーでエラーの解決方法を質問。

Python2系のコードを3系に対応させるのは相当時間がかかるので、実行環境を2系にしたほうがよいと思います。
ライブラリも2系では動くけど、3系では動かないといったことも考えられるので、そういった側面でも2系で動作させるべきだと思います。
上記のエラーは引数が足りていないことを示しています。
なので

python colab_kernel_launcher.py <設定ファイルのパス>

とすると一旦上記のエラーは解決するかと思います。
繰り返しで申し訳ないですが、2系で動かすべきです。

なるほど。python2からpython3へpipelineもあるようだけれど、もう様々なエラーが出てる時点で止めた方がよさそう。ということで、次はpython3をベースとしたcirctoolsを使うことにしました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0