Skip to content
Snippets Groups Projects
Commit ce37382e authored by mjbonifa's avatar mjbonifa
Browse files

updated readme and counts for omop table messages

parent 56caa2af
Branches
No related tags found
No related merge requests found
...@@ -136,6 +136,22 @@ Please execute the following process: ...@@ -136,6 +136,22 @@ Please execute the following process:
```bash ```bash
acmc omop install -f <path to downloaded OMOP zip file> -v <release version from email> acmc omop install -f <path to downloaded OMOP zip file> -v <release version from email>
``` ```
Expected output:
```bash
[INFO] - Installing OMOP from zip file: ../data/acmc-omop.zip
[INFO] - Extracted OMOP zip file ../data/acmc-omop.zip to vocab/omop/
[INFO] - Processing 1 of 9 tables: vocab/omop/CONCEPT.csv
[INFO] - Processing 2 of 9 tables: vocab/omop/DOMAIN.csv
[INFO] - Processing 3 of 9 tables: vocab/omop/CONCEPT_CLASS.csv
[INFO] - Processing 4 of 9 tables: vocab/omop/RELATIONSHIP.csv
[INFO] - Processing 5 of 9 tables: vocab/omop/DRUG_STRENGTH.csv
[INFO] - Processing 6 of 9 tables: vocab/omop/VOCABULARY.csv
[INFO] - Processing 7 of 9 tables: vocab/omop/CONCEPT_SYNONYM.csv
[INFO] - Processing 8 of 9 tables: vocab/omop/CONCEPT_ANCESTOR.csv
[INFO] - Processing 9 of 9 tables: vocab/omop/CONCEPT_RELATIONSHIP.csv
[INFO] - OMOP installation completed
```
--- ---
...@@ -451,7 +467,7 @@ The `phen` command is used phenotype-related operations. ...@@ -451,7 +467,7 @@ The `phen` command is used phenotype-related operations.
## License ## License
MIT License This project is licensed under the terms of the **Apache License 2.0**. For more details, please see the full license [here](http://www.apache.org/licenses/LICENSE-2.0).
## Support ## Support
......
...@@ -42,7 +42,7 @@ vocabularies = { ...@@ -42,7 +42,7 @@ vocabularies = {
#Populate SQLite3 Database with default OMOP CONCEPTS #Populate SQLite3 Database with default OMOP CONCEPTS
def install (omop_zip_file, version): def install (omop_zip_file, version):
"""Installs the OMOP release csv files in a file-based sql database""" """Installs the OMOP release csv files in a file-based sql database"""
logger.info(f"Installing OMOP downloads {omop_zip_file}") logger.info(f"Installing OMOP from zip file: {omop_zip_file}")
omop_zip_path = Path(omop_zip_file) omop_zip_path = Path(omop_zip_file)
# Check if the file exists and is a ZIP file # Check if the file exists and is a ZIP file
...@@ -74,22 +74,24 @@ def install (omop_zip_file, version): ...@@ -74,22 +74,24 @@ def install (omop_zip_file, version):
# connect to database, if it does not exist it will be created # connect to database, if it does not exist it will be created
conn = sqlite3.connect(DB_PATH) conn = sqlite3.connect(DB_PATH)
# Iterate through files in the folder # Iterate through files in the folder
for filename in os.listdir(VOCAB_PATH): csv_files = list(VOCAB_PATH.glob("*.csv"))
if filename.endswith(".csv"): # Check if the file is a CSV total_tables_count = len(csv_files)
file_path = os.path.join(VOCAB_PATH, filename) table_count = 1
try: for filename in csv_files:
logger.info(f"Reading table: {file_path}") try:
# read the CSV file with the specified delimiter logger.info(f"Processing {table_count} of {total_tables_count} tables: {filename}")
df = pd.read_csv(file_path, delimiter="\t", low_memory=False) # read the CSV file with the specified delimiter
table_name = os.path.splitext(os.path.basename(file_path))[0] #Get name of file df = pd.read_csv(filename, delimiter="\t", low_memory=False)
# export Table to sqlite db
df.to_sql(filename.stem, conn, if_exists='replace', index=False)
# export Table to sqlite db # add to the metadata
df.to_sql(table_name, conn, if_exists='replace', index=False) vocabularies["tables"].append(filename.stem)
table_count = table_count + 1
except Exception as e:
raise Exception(f"Error reading file {filename}: {e}")
# add to the metadata
vocabularies["tables"].append(filename)
except Exception as e:
raise Exception(f"Error reading file {file_path}: {e}")
conn.close() conn.close()
# write version file # write version file
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment