NGS 시퀀싱 결과를 저장할 데이터베이스를 만들었습니다. 모든 정보를 저장하는 17 개의 테이블로 구성됩니다. 결과는 스프레드 시트에 저장되어 파이썬 (2.7)을 사용하여 변수를 저장하고 변수를 저장 한 다음 파이썬 패키지 mysqldb를 사용하여 데이터베이스에 데이터를 삽입합니다. 주로 변수에서 필요한 정보를 얻기 위해 함수를 사용하고,이 함수를 호출하기 위해 'try :'문을 삽입하는 루프를 작성합니다. 다음은 간단한 예입니다.MySQL 데이터베이스 삽입 프로그램에 파이썬 클래스를 사용해야합니까?
def sample_processer(file):
my_file = open(file, 'r+')
samples = []
for line in my_file:
...get info...
samples.append(line[0])
return(samples)
samples = sample_processor('path/to/file')
for sample in samples:
try:
sql = "samsql = "INSERT IGNORE INTO sample(sample_id, diagnosis, screening) VALUES ("
samsql = samsql + "'"+sample+"'," +sam_screen_dict.get(sample)+"')"
except e:
db.rollback()
print("Something went wrong inserting data into the sample table: %s" %(e))
* sam_screen_dict는 다른 기능으로 만든 사전입니다.
이 파일은 내가 업로드 한 간단한 테이블이지만 많은 사람들이 올바른 사전 결과를 업로드하기 위해 다른 사전을 호출합니다. 그러나 클래스를 사용하여이를 수행하는 더 강력한 방법이 있는지 궁금해하고있었습니다.
예를 들어, 내 sample_id에는 샘플 테이블에 관련 선별 속성이 있으므로 하나의 사전으로 쉽게 처리 할 수 있습니다. sample_id, experiment_id 및 발견 된 돌연변이가 다른 데이터와 함께 저장된 테이블과 같은 더 복잡한 접합 테이블을 가지고 있는데이 테이블에 대한 클래스를 만드는 것이 좋을 것입니다. 간단한 '샘플'클래스를 호출하여 에서 상속? 그 방법은 내가 삽입 된 결과가 올바른 샘플/실험 등을위한 것임을 항상 알게 될 것입니다.
또한 클래스를 사용하여 각 속성에 대한 규칙을 작성하여 원본 스프레드 시트가 어떤 이유로 부정확 한 경우 데이터베이스에 삽입하지 않습니까? 예 : sample_id의 형식은 A123/16입니다. 따라서 클래스를 사용하면 첫 번째 문자가 'A'이고 sample_id [-3]이 항상 == '/'이어야 함을 확인할 것입니다. 나는 이것을 함수에 쓸 수 있다는 것을 알고 있지만 너무 많은 공간과 시간을 써서 많은 'if'문을 쓰는 것처럼 느껴진다. 클래스에 한 번 저장하면 훨씬 더 좋을 것이다.
누구나 클래스를 사용하여 변수를 통과하여 삽입 단계에 도달하고 오류가 생성되기 전에 올바른지 테스트하는 사람이 있습니까?
저는 파이썬 클래스에 익숙하지 않고 기초 지식을 이해하고 있으며, 여전히 올바른 방향으로 나아갈 수 있도록 노력하고 있습니다. 실제로 파이썬 코드를 작성하는 법에 대한 도움이 될 것입니다 보다 견고한 데이터베이스 삽입 프로그램을 만드는 데 사용될 클래스입니다.
, 아마도 SQLAlchemy의 시도? – jonrsharpe