ネストされた 2 番目の if ステートメントは、宣言された名前を認識しません。2 番目の if ステートメントの後のコードをコメントアウトしましたが、それが必要です。ファイルには多くの行があります。CDS 文字列を含むものからは記号が必要ですが、row[6]
機能文字列を含むものはすべて必要ですが、記号も知る必要があります。CDS と特徴行の両方の ID が一致する必要があるため、 test if t.group(2) == n.group(2)
. continue ステートメントを試しましたが、まだ機能していません。みんな助けてくれてありがとう
Traceback (most recent call last):
File "../scripts/gff_cds.py", line 22, in <module>
print sign
NameError: name 'sign' is not defined
import sys, csv, re
gff_ref = open(sys.argv[1])
parse_ref = csv.reader(gff_ref, delimiter='\t')
writer = csv.writer(sys.stdout)
ref_list = []
for row in parse_ref:
if len(row) > 1 and 'remark' not in row and 'CDS' in row:
t = re.search('(Transcript):(\w+.\w+\.?[0-9]?)', row[8])
temp = t.group(2)
sign = row[6]
# continue
if 'feature' in row:
print sign, temp
# ref_dict = {}
# n = re.search('(\W\w+):(\w+.\w+\.?[0-9]?)', row[8])
# if temp == n.group(2):
# ref_dict['seqname'] = row[0]; ref_dict['start'] = int(row[3]);
# ref_dict['end'] = int(row[4]); ref_dict['strand'] = sign;
# ref_dict['id'] = t.group(2)
#
# ref_list.append(ref_dict)
例えば
CHROMOSOME_I 機能 inferred_parent 13349410 13358674 . . . ID=転写:Y40B1A.3c
CHROMOSOME_I Coding_transcript CDS 13349410 13349478 . + 0 ID=CDS:Y40B1A.3c;Parent=Transcript:Y40B1A.3c;status=部分的に確認済み;wormpep=CE:CE45409
CHROMOSOME_I Coding_transcript CDS 13353007 13353245 . + 0 ID=CDS:Y40B1A.3c;Parent=Transcript:Y40B1A.3c;status=部分的に確認済み;wormpep=CE:CE45409
CHROMOSOME_I Coding_transcript CDS 13354069 13354225 . + 0 ID=CDS:Y40B1A.3c;Parent=Transcript:Y40B1A.3c;status=部分的に確認済み;wormpep=CE:CE45409