示例#1
0
class DetailedComputedFileSerializer(serializers.ModelSerializer):
    result = ComputationalResultRelationSerializer(many=False, read_only=False)
    samples = DetailedExperimentSampleSerializer(many=True)
    compendia_organism_name = serializers.CharField(
        source="compendia_organism__name", read_only=True)

    class Meta:
        model = ComputedFile
        fields = (
            "id",
            "filename",
            "samples",
            "size_in_bytes",
            "is_qn_target",
            "is_smashable",
            "is_qc",
            "is_compendia",
            "quant_sf_only",
            "compendia_version",
            "compendia_organism_name",
            "sha1",
            "s3_bucket",
            "s3_key",
            "s3_url",
            "download_url",
            "created_at",
            "last_modified",
            "result",
        )
示例#2
0
class DetailedExperimentSerializer(serializers.ModelSerializer):
    annotations = ExperimentAnnotationSerializer(many=True, source="experimentannotation_set")
    samples = DetailedExperimentSampleSerializer(many=True)
    sample_metadata = serializers.ReadOnlyField(source="sample_metadata_fields")
    organism_names = serializers.StringRelatedField(many=True, source="organisms", read_only=True)

    class Meta:
        model = Experiment
        fields = (
            "id",
            "title",
            "description",
            "annotations",
            "samples",
            "protocol_description",
            "accession_code",
            "alternate_accession_code",
            "source_database",
            "source_url",
            "has_publication",
            "publication_title",
            "publication_doi",
            "publication_authors",
            "pubmed_id",
            "source_first_published",
            "source_last_modified",
            "submitter_institution",
            "last_modified",
            "created_at",
            "organism_names",
            "sample_metadata",
            "num_total_samples",
            "num_processed_samples",
            "num_downloadable_samples",
        )
示例#3
0
class ComputedFileListSerializer(serializers.ModelSerializer):
    result = ComputationalResultNoFilesRelationSerializer(many=False)
    samples = DetailedExperimentSampleSerializer(many=True)
    compendia_organism_name = serializers.CharField(
        source="compendia_organism__name", read_only=True)

    def __init__(self, *args, **kwargs):
        super(ComputedFileListSerializer, self).__init__(*args, **kwargs)
        if "context" in kwargs:
            # only include the field `download_url` if a valid token is specified
            # the token lookup happens in the view.
            if "token" not in kwargs["context"]:
                self.fields.pop("download_url")

    class Meta:
        model = ComputedFile
        fields = (
            "id",
            "filename",
            "samples",
            "size_in_bytes",
            "is_qn_target",
            "is_smashable",
            "is_qc",
            "is_compendia",
            "quant_sf_only",
            "compendium_version",
            "compendia_organism_name",
            "sha1",
            "s3_bucket",
            "s3_key",
            "s3_url",
            "download_url",
            "created_at",
            "last_modified",
            "result",
        )
        read_only_fields = fields
        extra_kwargs = {
            "download_url": {
                "help_text":
                "This will contain an url to download the file. You must send a valid [token](#tag/token) in order to receive this."
            }
        }
示例#4
0
class DetailedOriginalFileSerializer(OriginalFileSerializer):
    samples = DetailedExperimentSampleSerializer(many=True)
    processor_jobs = ProcessorJobRelationSerializer(many=True)
    downloader_jobs = DownloaderJobRelationSerializer(many=True)