1つの列と2000行しか持たないテーブルをインポートしています。該カラムは、異なる長さを有するロングDNA配列を含む。csv dataframeをインポートし、それをPythonの文字列に変換します
import pandas as pd
dna=pd.read_csv("mydna.csv",header=None)
私はいくつかのDNAにアクセスして、文字列に一つずつ列を変換する必要があります。
samples=dna.loc[:10]
その後、私はそれが自動的にちょうど少数のシーケンスを取り、it.itの残りのため...
を使用することを実現それらの全てを同じ長さとみなし、残りのDNA配列については...
を挿入する。これは私のデータは文学、のように見える方法です:私は、DNAの内容をカウントしたい場合
print(samples)
0
0 CGGCCTAACCTGGCTCTCCCAACCTTCAAGCGGCCGGGACCCCGCC...
1 GAGAAAGTAACTGGGTGGCCTCCTCAGTCTCTCCACCACTCAGATT...
2 AAGAACTCCTCCAGGCTCTGACCACTCTCCCAGCCTCGCACAGCGC...
3 GGGAGGCTGAGGCAGGGGGATTGCTTGAGCCCAGGACTTTGAGAAG...
4 GAGTACAGTGGTACGATCTCGGCTCACTGCAGCCTCAACCTCCCAG...
5 GAAACAAATGGATTTTTTTACTACAAATCTCCAGGTTTTTTGGGTT...
6 TCATCTTCCGCACCCGAGCCCCGGGCTCACTCGCTGGGGCTGCCGG...
7 CACAATAATCAGTATTTCTACACAAAGGAAGCATATCCCCCTATTA...
8 TTTCTGTTTGCTGAGCTGTCACTCAAGCTAAACAGATAGCAACAGG...
9 GTTGCCTAGGCTGATCTTGAACTCCTGGGCTTAAGCAGTCCACCCG...
10 GAACTATGTAACTAGCAGCCTCTGGCTTGTTTTCTACTCCCTGTCC...
問題は悪化します。 dna文字列として...
とspaces
とnumbers
と考えています。各列(行)の長さは異なりますが、長さはすべて77
です。
len(str(dna.loc[2]))
Out[27]: 77
len(str(dna.loc[3]))
Out[28]: 77
str(dna.loc[1])
Out[41]: '0 GAGAAAGTAACTGGGTGGCCTCCTCAGTCTCTCCACCACTCAGATT...\nName: 1, dtype: object'
count_kmers(str(dna.loc[1]), 1) #function that counts dna contents
Out[40]:
{'\n': 1,' ': 7,',': 1,'.': 3,'0': 1,'1': 1,':': 2,'A': 11,'C': 14,'G': 10,'N': 1,'T': 11,'a': 1,'b': 1,'c': 1,'d': 1,'e': 3,'j': 1,'m': 1,'o': 1,'p': 1,'t': 2,'y': 1}
それがすべて間違って、私はちょうどそれの大部分を除去する'A','T','C','G'
を必要とし、残りの文字列は、単に変換した後に生成されます。
どのように解決することができます1)シーケンスの問題の長さと2)文字列に変換した後に'0 ...\nName: 1, dtype: object'
部分を無視する方法?
感謝:
は、あなたはおそらく、やりたいことはこれです。私は 'count_kmer'関数に送る理由を理解できません。正確な文字列は' ... 'で表示されます。 – Cina