1

データ分析の一部にPandasを使用し、sqlite3 構文を使用する結合されたsqldfライブラリを使用することにしました。問題は、非記述エラーが発生することです。私はそれが私のSQL構文だと思いますが、私には何も目立ちません。

エラー:

Error on sql  SELECT u.chromosome, u.transcript_affected, u.ensembl_gene_id, u.gene_name ,u.strand, s.transcript_affected, s.ensembl_gene_id, s.gene_name FROM utr_file u INNER JOIN ssm_file s ON u.chromosome= s.chromosome AND u.strand = s.chromosome_strand WHERE s.chromosome_start BETWEEN u.start AND u.end ORDER BY u.chromosome;

SQL 行 (上記のエラーにもあります):

 q = ''' SELECT u.chromosome, u.transcript_affected, u.ensembl_gene_id, u.gene_name ,u.strand, s.transcript_affected, s.ensembl_gene_id, s.gene_name FROM utr_file u INNER JOIN ssm_file s ON u.chromosome= s.chromosome AND u.strand = s.chromosome_strand WHERE s.chromosome_start BETWEEN u.start AND u.end ORDER BY u.chromosome;'''

 qsubset= sqldf(q,globals())

目標: ssm_file の変異が (場所によって) utr_file のどこで一致するか (開始と終了の間) を特定しようとしています。また、最初に染色体と鎖で一致させる必要があります。

サンプルの utr ファイル:

  chromosome     start       end                              gene_name strand  
0       chr1  67208778  67210768    NM_032291_utr3_24_0_chr1_67208779_f   +
1       chr1  48998526  48999844     NM_032785_utr3_0_0_chr1_48998527_r   -
2       chr1  16785385  16786584     NM_018090_utr3_7_0_chr1_16785386_f   +
3       chr1  33585783  33585995    NM_052998_utr3_11_0_chr1_33585784_f   +
4       chr1  16785385  16786584  NM_001145278_utr3_7_0_chr1_16785386_f   +

サンプル ssm_file:

  chromosome  chromosome_start  chromosome_strand transcript_affected  \
0       chr1         100951090                  +     ENSG00000079335   
1       chr1         100951090                  +     ENSG00000079335   
2       chr1         100951090                  +     ENSG00000079335   
3       chr1         100951090                  +     ENSG00000079335   
4       chr1         100951090                  +     ENSG00000079335   

   ensembl_gene_id gene_name  
0  ENST00000544534    CDC14A  
1  ENST00000542213    CDC14A  
2  ENST00000370125    CDC14A  
3  ENST00000361544    CDC14A  
4  ENST00000336454    CDC14A
4

1 に答える 1

2

列の位置に問題があるようです。Pandas をインストールしていませんが、このクエリは sqlite で作成された一時テーブルに対して機能しました。

SELECT u.chromosome, u.gene_name ,u.strand, s.transcript_affected, 
s.ensembl_gene_id, s.gene_name FROM utr_file u INNER JOIN ssm_file s ON u.chromosome=
s.chromosome AND u.strand = s.chromosome_strand
WHERE s.chromosome_start BETWEEN u.start AND u.end ORDER BY u.chromosome;

u.ensembl_gene_id と u.transcript_affected は ssm_file にのみ表示されるため、select から削除しました。

于 2013-06-08T18:32:56.777 に答える