私はPythonクラスのメソッドを使用してデータを解析し、SQL INSERT文を作成しています。両方のファイルに遺伝子名のリストがあります。最初のファイルは、パネル名が常に同じ20の遺伝子名の単純なリストです。 2番目のファイルには遺伝子に関する詳細情報があり、各遺伝子名には複数のエントリがあります。クラス内のPythonメソッドを使用して、変数をチェックする変数は別のクラスオブジェクトと同じです
のように現時点では私のコードが見えます:私の質問がある
class Gene(object):
def __init__(self, gene):
self.gene = gene
def make_gene_sql(self):
sql = """INSERT INTO gene ("""+"'"+self.gene+"', '"+panel+"')"
return sql
class Variants(object):
def __init__(self, gene, run_id, sample, variant):
self.run_id = run_id
self.sample = sample
self.gene = gene
self.variant = variant
def make_vsr_sql(self):
sql = "INSERT INTO variants_sample_run ("+ "'"+self.sample +"', '"+self.gene +"', '"+self.variant +"', '"+self.run_id+"')"
return sql
gene_file = open(gene_path, 'r+')
for line in gene_file:
gene_object = Gene(line.strip('\r\n'))
gene_sql = gene_object.make_gene_sql()
cursor.execute(gene_sql)
var_file = open(var_path, 'r+')
for line in var_file.readlines()[1:]:
item = line.split('\t')
sample = item[0]
run = item[1]
gene = item[2]
variant = item[3]
variants_object = Variants(gene, run, sample, variant)
sql = variants_object.make_var_sql()
cursor.execute(sql)
:私はジーンクラスからバリアントクラスの継承を行い、遺伝子変数かどうかをチェックするための新しい関数を作成することができます方法はあります私のvariants_objectはgenes_objectにありますか?私はvar_fileからの遺伝子変数が確実に遺伝子ファイルにあることを確認するために、私の変数を遺伝子クラスに渡します。このようなもの(実際には動作します!)?
class Variants(Gene):
def __init__(self, gene, run_id, sample, variant):
self.run_id = run_id
self.sample = sample
self.gene = gene.gene
self.variant = variant
def check_gene(gene):
if self.gene not in gene.gene:
print('Gene not correct')
def make_vsr_sql(self):
sql = "INSERT INTO variants_sample_run ("+ "'"+self.sample +"', '"+self.gene +"', '"+self.variant +"', '"+self.run_id+"')"
return sql
私は、これはおそらく、しかし、私はこれはこれを行うための最善の方法であるかどうかわからないんだけど、全ての遺伝子を含む遺伝子クラスから作成されたリストを使用することができます考えていましたか?
は、コードが与えられたことはありませんか?彼はそれがうまくいかないと言った。 –
もう1つ試してみる –
これがどのように問題を解決できるかを説明してください。いくつかの詳細を追加します。 – Jay