Skip to content

Patient retraction

genie_registry.patientRetraction

Attributes

logger = logging.getLogger(__name__) module-attribute

Classes

sampleRetraction

Bases: FileTypeFormat

Source code in genie_registry/sampleRetraction.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
class sampleRetraction(FileTypeFormat):
    _fileType = "sampleRetraction"

    _process_kwargs = ["newPath", "databaseSynId", "fileSynId"]

    def _get_dataframe(self, filePathList):
        """
        This function by defaults assumes the filePathList is length of 1
        and is a tsv file.  Could change depending on file type.
        """
        filePath = filePathList[0]
        df = pd.read_csv(filePath, header=None)
        return df

    def _validateFilename(self, filePath):
        assert os.path.basename(filePath[0]) == "%s.csv" % self._fileType

    def _process(self, deleteSamplesDf, modifiedOn):
        col = (
            "genieSampleId"
            if self._fileType == "sampleRetraction"
            else "geniePatientId"
        )
        deleteSamplesDf.rename(columns={0: col}, inplace=True)
        modifiedOn = to_unix_epoch_time(
            datetime.datetime.strptime(modifiedOn, "%Y-%m-%dT%H:%M:%S")
        )
        deleteSamplesDf["retractionDate"] = modifiedOn
        deleteSamplesDf["center"] = self.center
        return deleteSamplesDf

    def process_steps(self, deleteSamples, fileSynId, databaseSynId, newPath):
        info = self.syn.get(fileSynId, downloadFile=False)
        deleteSamples = self._process(deleteSamples, info.modifiedOn.split(".")[0])
        load.update_table(
            syn=self.syn,
            databaseSynId=databaseSynId,
            newData=deleteSamples,
            filterBy=self.center,
            filterByColumn="center",
            toDelete=True,
        )
        return newPath

patientRetraction

Bases: sampleRetraction

Source code in genie_registry/patientRetraction.py
8
9
class patientRetraction(sampleRetraction):
    _fileType = "patientRetraction"